@mat3ra/esse 2025.5.17-2 → 2025.6.14-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/js/example/apse/materials/builders/slab/pymatgen/parameters.json +1 -1
- package/dist/js/example/materials_category/pristine_structures/two_dimensional/slab.json +288 -0
- package/dist/js/example/{material/reusable/supercell → materials_category_components/entities/auxiliary/three_dimensional}/supercell_matrix_3d.json +2 -2
- package/dist/js/example/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.json +7 -0
- package/dist/js/example/materials_category_components/entities/core/three_dimensional/crystal.json +128 -0
- package/dist/js/example/materials_category_components/entities/core/three_dimensional/void.json +20 -0
- package/dist/js/example/{materials_category/defects/configuration.json → materials_category_components/entities/core/two_dimensional/vacuum.json} +3 -1
- package/dist/js/example/materials_category_components/entities/core/zero_dimensional/atom.json +3 -0
- package/dist/js/example/materials_category_components/entities/reusable/repetitions.json +5 -0
- package/dist/js/example/materials_category_components/operations/core/combinations/merge.json +265 -0
- package/dist/js/example/materials_category_components/operations/core/combinations/stack.json +265 -0
- package/dist/js/example/materials_category_components/operations/core/combinations/stack_component.json +128 -0
- package/dist/js/example/materials_category_components/operations/core/modifications/repeat.json +19 -0
- package/dist/js/example/materials_category_components/operations/core/modifications/strain.json +19 -0
- package/dist/js/schema/apse/materials/builders/slab/pymatgen/parameters.json +3 -3
- package/dist/js/schema/core/primitive/array_of_3_integers.json +11 -0
- package/dist/js/schema/{materials_category/defects/two_dimensional/island/condition.json.json → core/reusable/coordinate_conditions.json} +4 -2
- package/dist/js/schema/materials_category/pristine_structures/three_dimensional/ideal_crystal.json +757 -0
- package/dist/js/schema/materials_category/pristine_structures/two_dimensional/slab.json +1792 -0
- package/dist/js/schema/{material/reusable/supercell → materials_category_components/entities/auxiliary/three_dimensional}/supercell_matrix_3d.json +3 -1
- package/dist/js/schema/{material/reusable/slab → materials_category_components/entities/auxiliary/two_dimensional}/miller_indices.json +5 -5
- package/dist/js/schema/{material/reusable/supercell → materials_category_components/entities/auxiliary/two_dimensional}/supercell_matrix_2d.json +1 -1
- package/dist/js/schema/{material/reusable/slab → materials_category_components/entities/auxiliary/two_dimensional}/termination.json +2 -2
- package/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.json +22 -0
- package/dist/js/schema/materials_category_components/entities/core/three_dimensional/crystal.json +757 -0
- package/dist/js/schema/materials_category_components/entities/core/three_dimensional/void.json +76 -0
- package/dist/js/schema/materials_category_components/entities/core/two_dimensional/vacuum.json +787 -0
- package/dist/js/schema/materials_category_components/entities/core/zero_dimensional/atom.json +134 -0
- package/dist/js/schema/{material → materials_category_components/entities}/reusable/repetitions.json +1 -1
- package/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.json +786 -0
- package/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/strained_uniform.json +773 -0
- package/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/supercell.json +786 -0
- package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers.json +947 -0
- package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique.json +947 -0
- package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated.json +948 -0
- package/dist/js/schema/{materials_category/single_material/two_dimensional/slab/configuration.json → materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.json} +16 -59
- package/dist/js/schema/{materials_category/defects/two_dimensional/grain_boundary_plane/configuration.json → materials_category_components/entities/reusable/two_dimensional/slab_unit_cell.json} +921 -1174
- package/dist/js/schema/{materials_category/multi_material/interfaces/configuration.json → materials_category_components/operations/core/combinations/merge.json} +859 -252
- package/dist/js/schema/{material/reusable/stack/stack_of_slabs.json → materials_category_components/operations/core/combinations/stack.json} +796 -253
- package/dist/js/schema/{material/reusable/slab_configuration_with_termination.json → materials_category_components/operations/core/combinations/stack_component.json} +789 -235
- package/dist/js/schema/materials_category_components/operations/core/modifications/repeat.json +42 -0
- package/dist/js/schema/materials_category_components/operations/core/modifications/strain.json +24 -0
- package/dist/js/schemas.json +1 -1
- package/dist/js/types.d.ts +4698 -4703
- package/example/apse/materials/builders/slab/pymatgen/parameters.json +1 -1
- package/example/materials_category/pristine_structures/two-dimensional/slab.json +38 -0
- package/example/materials_category_components/entities/auxiliary/three-dimensional/supercell_matrix_3d.json +5 -0
- package/example/materials_category_components/entities/auxiliary/two-dimensional/miller_indices.json +1 -0
- package/example/materials_category_components/entities/auxiliary/two-dimensional/supercell_matrix_2d.json +4 -0
- package/example/{material/reusable/slab → materials_category_components/entities/auxiliary/two-dimensional}/termination.json +1 -1
- package/example/materials_category_components/entities/auxiliary/zero-dimensional/crystal_site.json +3 -0
- package/example/materials_category_components/entities/core/three-dimensional/crystal.json +3 -0
- package/example/materials_category_components/entities/core/three-dimensional/void.json +8 -0
- package/example/materials_category_components/entities/core/two-dimensional/vacuum.json +7 -0
- package/example/materials_category_components/entities/core/zero-dimensional/atom.json +3 -0
- package/example/materials_category_components/entities/reusable/repetitions.json +1 -0
- package/example/materials_category_components/operations/core/combinations/merge.json +11 -0
- package/example/materials_category_components/operations/core/combinations/stack.json +11 -0
- package/example/materials_category_components/operations/core/combinations/stack_component.json +3 -0
- package/example/materials_category_components/operations/core/modifications/repeat.json +13 -0
- package/example/materials_category_components/operations/core/modifications/strain.json +7 -0
- package/package.json +1 -1
- package/schema/apse/materials/builders/slab/pymatgen/parameters.json +3 -3
- package/schema/core/primitive/array_of_3_integers.json +11 -0
- package/schema/core/reusable/coordinate_conditions/index.json +11 -0
- package/schema/materials_category/manifest.yaml +268 -0
- package/schema/materials_category/pristine_structures/three-dimensional/ideal_crystal.json +11 -0
- package/schema/materials_category/pristine_structures/two-dimensional/slab.json +17 -0
- package/schema/{material/reusable/supercell → materials_category_components/entities/auxiliary/three-dimensional}/supercell_matrix_3d.json +2 -7
- package/schema/materials_category_components/entities/auxiliary/two-dimensional/miller_indices.json +16 -0
- package/schema/{material/reusable/supercell → materials_category_components/entities/auxiliary/two-dimensional}/supercell_matrix_2d.json +1 -1
- package/schema/{material/reusable/slab → materials_category_components/entities/auxiliary/two-dimensional}/termination.json +3 -3
- package/schema/materials_category_components/entities/auxiliary/zero-dimensional/crystal_site.json +15 -0
- package/schema/materials_category_components/entities/core/three-dimensional/crystal.json +11 -0
- package/schema/materials_category_components/entities/core/three-dimensional/void.json +19 -0
- package/schema/materials_category_components/entities/core/two-dimensional/vacuum.json +27 -0
- package/schema/materials_category_components/entities/core/zero-dimensional/atom.json +15 -0
- package/schema/{material → materials_category_components/entities}/reusable/repetitions.json +1 -1
- package/schema/materials_category_components/entities/reusable/three-dimensional/strained_non_uniform.json +20 -0
- package/schema/materials_category_components/entities/reusable/three-dimensional/strained_uniform.json +20 -0
- package/schema/materials_category_components/entities/reusable/three-dimensional/supercell.json +20 -0
- package/schema/materials_category_components/entities/reusable/two-dimensional/atomic_layers.json +12 -0
- package/schema/materials_category_components/entities/reusable/two-dimensional/atomic_layers_unique.json +25 -0
- package/schema/materials_category_components/entities/reusable/two-dimensional/atomic_layers_unique_repeated.json +27 -0
- package/schema/materials_category_components/entities/reusable/two-dimensional/crystal_lattice_planes.json +25 -0
- package/schema/materials_category_components/entities/reusable/two-dimensional/slab_unit_cell.json +33 -0
- package/schema/materials_category_components/operations/core/combinations/merge.json +33 -0
- package/schema/materials_category_components/operations/core/combinations/stack.json +21 -0
- package/schema/materials_category_components/operations/core/combinations/stack_component.json +14 -0
- package/schema/materials_category_components/operations/core/modifications/repeat.json +10 -0
- package/schema/materials_category_components/operations/core/modifications/strain.json +10 -0
- package/dist/js/example/material/builders/base/selector_parameters.json +0 -3
- package/dist/js/example/material/builders/single_material/two_dimensional/slab/selector_parameters.json +0 -6
- package/dist/js/example/material/reusable/repetitions.json +0 -5
- package/dist/js/example/material/reusable/slab/number_of_layers.json +0 -1
- package/dist/js/example/material/reusable/slab/vacuum.json +0 -1
- package/dist/js/example/material/reusable/slab_configuration_with_termination.json +0 -156
- package/dist/js/example/materials_category/defects/by_host/two_dimensional/adatom/configuration.json +0 -138
- package/dist/js/example/materials_category/defects/by_host/two_dimensional/point/configuration.json +0 -135
- package/dist/js/example/materials_category/defects/one_dimensional/terrace/configuration.json +0 -144
- package/dist/js/example/materials_category/defects/two_dimensional/grain_boundary_plane/configuration.json +0 -475
- package/dist/js/example/materials_category/defects/zero_dimensional/complex/pair/configuration.json +0 -406
- package/dist/js/example/materials_category/defects/zero_dimensional/point/configuration.json +0 -138
- package/dist/js/example/materials_category/defects/zero_dimensional/point/interstitial/configuration.json +0 -139
- package/dist/js/example/materials_category/defects/zero_dimensional/point/substitution/configuration.json +0 -138
- package/dist/js/example/materials_category/defects/zero_dimensional/point/vacancy/configuration.json +0 -137
- package/dist/js/example/materials_category/single_material/two_dimensional/slab/configuration.json +0 -150
- package/dist/js/schema/material/builders/base/selector_parameters.json +0 -15
- package/dist/js/schema/material/builders/single_material/two_dimensional/slab/builder_parameters.json +0 -33
- package/dist/js/schema/material/builders/single_material/two_dimensional/slab/selector_parameters.json +0 -159
- package/dist/js/schema/material/reusable/slab/enums/exposed_face.json +0 -11
- package/dist/js/schema/material/reusable/slab/number_of_layers.json +0 -9
- package/dist/js/schema/material/reusable/slab/vacuum.json +0 -9
- package/dist/js/schema/material/reusable/stack/slab_in_stack.json +0 -1005
- package/dist/js/schema/material/reusable/stack/stack_of_two_slabs.json +0 -1033
- package/dist/js/schema/materials_category/defects/by_host/two_dimensional/adatom/configuration.json +0 -926
- package/dist/js/schema/materials_category/defects/by_host/two_dimensional/layered/configuration.json +0 -794
- package/dist/js/schema/materials_category/defects/by_host/two_dimensional/point/configuration.json +0 -803
- package/dist/js/schema/materials_category/defects/configuration.json +0 -786
- package/dist/js/schema/materials_category/defects/enums/point_defect_type.json +0 -11
- package/dist/js/schema/materials_category/defects/one_dimensional/terrace/configuration.json +0 -831
- package/dist/js/schema/materials_category/defects/two_dimensional/island/configuration.json +0 -845
- package/dist/js/schema/materials_category/defects/zero_dimensional/complex/pair/configuration.json +0 -2634
- package/dist/js/schema/materials_category/defects/zero_dimensional/point/configuration.json +0 -925
- package/dist/js/schema/materials_category/defects/zero_dimensional/point/interstitial/configuration.json +0 -926
- package/dist/js/schema/materials_category/defects/zero_dimensional/point/substitution/configuration.json +0 -926
- package/dist/js/schema/materials_category/defects/zero_dimensional/point/vacancy/configuration.json +0 -926
- package/example/material/builders/base/selector_parameters.json +0 -3
- package/example/material/builders/single_material/two_dimensional/slab/selector_parameters.json +0 -6
- package/example/material/reusable/repetitions.json +0 -1
- package/example/material/reusable/slab/miller_indices.json +0 -5
- package/example/material/reusable/slab/number_of_layers.json +0 -1
- package/example/material/reusable/slab/vacuum.json +0 -1
- package/example/material/reusable/slab_configuration_with_termination.json +0 -8
- package/example/material/reusable/supercell/supercell_matrix_2d.json +0 -10
- package/example/material/reusable/supercell/supercell_matrix_3d.json +0 -11
- package/example/materials_category/defects/by_host/two-dimensional/adatom/configuration.json +0 -11
- package/example/materials_category/defects/by_host/two-dimensional/point/configuration.json +0 -8
- package/example/materials_category/defects/configuration.json +0 -5
- package/example/materials_category/defects/one-dimensional/terrace/configuration.json +0 -19
- package/example/materials_category/defects/two-dimensional/grain_boundary_plane/configuration.json +0 -21
- package/example/materials_category/defects/zero-dimensional/complex/pair/configuration.json +0 -9
- package/example/materials_category/defects/zero-dimensional/point/configuration.json +0 -11
- package/example/materials_category/defects/zero-dimensional/point/interstitial/configuration.json +0 -14
- package/example/materials_category/defects/zero-dimensional/point/substitution/configuration.json +0 -13
- package/example/materials_category/defects/zero-dimensional/point/vacancy/configuration.json +0 -12
- package/example/materials_category/single_material/two_dimensional/slab/configuration.json +0 -25
- package/schema/material/builders/base/selector_parameters.json +0 -15
- package/schema/material/builders/single_material/two_dimensional/slab/builder_parameters.json +0 -12
- package/schema/material/builders/single_material/two_dimensional/slab/selector_parameters.json +0 -12
- package/schema/material/reusable/slab/enums/exposed_face.json +0 -11
- package/schema/material/reusable/slab/miller_indices.json +0 -17
- package/schema/material/reusable/slab/number_of_layers.json +0 -9
- package/schema/material/reusable/slab/vacuum.json +0 -9
- package/schema/material/reusable/slab_configuration_with_termination.json +0 -19
- package/schema/material/reusable/stack/slab_in_stack.json +0 -26
- package/schema/material/reusable/stack/stack_of_slabs.json +0 -31
- package/schema/material/reusable/stack/stack_of_two_slabs.json +0 -17
- package/schema/materials_category/defects/by_host/two-dimensional/adatom/configuration.json +0 -16
- package/schema/materials_category/defects/by_host/two-dimensional/layered/configuration.json +0 -16
- package/schema/materials_category/defects/by_host/two-dimensional/point/configuration.json +0 -26
- package/schema/materials_category/defects/configuration.json +0 -34
- package/schema/materials_category/defects/one-dimensional/terrace/configuration.json +0 -44
- package/schema/materials_category/defects/two-dimensional/grain_boundary_plane/configuration.json +0 -20
- package/schema/materials_category/defects/two-dimensional/island/condition.json +0 -9
- package/schema/materials_category/defects/two-dimensional/island/configuration.json +0 -18
- package/schema/materials_category/defects/zero-dimensional/complex/pair/configuration.json +0 -20
- package/schema/materials_category/defects/zero-dimensional/point/configuration.json +0 -34
- package/schema/materials_category/defects/zero-dimensional/point/enums/type.json +0 -11
- package/schema/materials_category/defects/zero-dimensional/point/interstitial/configuration.json +0 -16
- package/schema/materials_category/defects/zero-dimensional/point/substitution/configuration.json +0 -16
- package/schema/materials_category/defects/zero-dimensional/point/vacancy/configuration.json +0 -16
- package/schema/materials_category/multi-material/interfaces/configuration.json +0 -12
- package/schema/materials_category/single_material/two_dimensional/slab/configuration.json +0 -36
- /package/dist/js/example/{material/reusable/slab → materials_category_components/entities/auxiliary/two_dimensional}/miller_indices.json +0 -0
- /package/dist/js/example/{material/reusable/supercell → materials_category_components/entities/auxiliary/two_dimensional}/supercell_matrix_2d.json +0 -0
- /package/dist/js/example/{material/reusable/slab → materials_category_components/entities/auxiliary/two_dimensional}/termination.json +0 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"stack_components": [
|
|
3
|
+
{
|
|
4
|
+
"crystal": {
|
|
5
|
+
"...": "include(../../../material.json)"
|
|
6
|
+
},
|
|
7
|
+
"miller_indices": [
|
|
8
|
+
0,
|
|
9
|
+
0,
|
|
10
|
+
1
|
|
11
|
+
],
|
|
12
|
+
"use_conventional_cell": true,
|
|
13
|
+
"termination_top": {
|
|
14
|
+
"chemical_elements": "Si",
|
|
15
|
+
"space_group_symmetry_label": "P4/mmm_2"
|
|
16
|
+
},
|
|
17
|
+
"number_of_repetitions": 5
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"direction": "z",
|
|
21
|
+
"size": 10,
|
|
22
|
+
"crystal": {
|
|
23
|
+
"...": "include(../../../material.json)"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
"direction": "z",
|
|
28
|
+
"xy_supercell_matrix": [
|
|
29
|
+
[
|
|
30
|
+
2,
|
|
31
|
+
0
|
|
32
|
+
],
|
|
33
|
+
[
|
|
34
|
+
0,
|
|
35
|
+
2
|
|
36
|
+
]
|
|
37
|
+
]
|
|
38
|
+
}
|
package/example/materials_category_components/entities/auxiliary/two-dimensional/miller_indices.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[0, 0, 1]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[2, 2, 1]
|
package/package.json
CHANGED
|
@@ -12,15 +12,15 @@
|
|
|
12
12
|
"number"
|
|
13
13
|
],
|
|
14
14
|
"minimum": 0,
|
|
15
|
-
"default":
|
|
15
|
+
"default": 0
|
|
16
16
|
},
|
|
17
17
|
"in_unit_planes": {
|
|
18
|
-
"description": "Whether to
|
|
18
|
+
"description": "Whether to use unit planes for the vacuum and slab size",
|
|
19
19
|
"type": "boolean",
|
|
20
20
|
"default": true
|
|
21
21
|
},
|
|
22
22
|
"reorient_lattice": {
|
|
23
|
-
"description": "Whether to reorient the lattice",
|
|
23
|
+
"description": "Whether to reorient the lattice to have c vector along the z-axis",
|
|
24
24
|
"type": "boolean",
|
|
25
25
|
"default": true
|
|
26
26
|
},
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "core/reusable/coordinate-conditions",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"title": "Coordinate Conditions Schema",
|
|
5
|
+
"description": "Combined schema for all coordinate condition types",
|
|
6
|
+
"oneOf": [
|
|
7
|
+
{
|
|
8
|
+
"$ref": "box.json"
|
|
9
|
+
}
|
|
10
|
+
]
|
|
11
|
+
}
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
# This is a temporary manifest file to describe the folder structure of materials-related content.
|
|
2
|
+
# The following notation is used:
|
|
3
|
+
#
|
|
4
|
+
# `<filename>:` - any key can be a schema file or a directory
|
|
5
|
+
# ` - key` - array components represent the keys inside a schema file content
|
|
6
|
+
# ` - key?` - optional file content key
|
|
7
|
+
# ` - key = ` - file content assignment to types of values
|
|
8
|
+
# `[value1, value2]` - list of values "value1 or value2"
|
|
9
|
+
# `[value, ...]` - list of multiple values "value"
|
|
10
|
+
# `( x | y | z ){1,2}` - a set of values "1 or 2 of any of the three"
|
|
11
|
+
#
|
|
12
|
+
|
|
13
|
+
materials_category_components:
|
|
14
|
+
entities:
|
|
15
|
+
core:
|
|
16
|
+
three-dimensional:
|
|
17
|
+
crystal:
|
|
18
|
+
void:
|
|
19
|
+
# can be placed into a crystal centered around specified crystal_site, all atoms inside are removed
|
|
20
|
+
- center_coordinate
|
|
21
|
+
- shape
|
|
22
|
+
two-dimensional:
|
|
23
|
+
vacuum:
|
|
24
|
+
# is applied along the specified direction, adds vacuum "slab", breaks periodicity in that direction, lowers dimensionality
|
|
25
|
+
- direction
|
|
26
|
+
- size
|
|
27
|
+
termination:
|
|
28
|
+
- stoichiometry
|
|
29
|
+
- symmetry
|
|
30
|
+
miller_indices: [ h, k, l ]
|
|
31
|
+
one-dimensional:
|
|
32
|
+
zero-dimensional:
|
|
33
|
+
crystal_site:
|
|
34
|
+
# created by reference to some crystal, can be populated with atom, vacancy, void, can be merged with a crystal of the same lattice
|
|
35
|
+
- coordinate
|
|
36
|
+
- id? # site id in the host crystal
|
|
37
|
+
atom:
|
|
38
|
+
- chemical_element
|
|
39
|
+
auxiliary: # auxiliary entities, not used in the main material creation
|
|
40
|
+
three-dimensional:
|
|
41
|
+
supercell_matrix_3d:
|
|
42
|
+
two-dimensional:
|
|
43
|
+
miller_indices: [ h, k ] # 2D Miller indices
|
|
44
|
+
one-dimensional:
|
|
45
|
+
edge_direction: [ u, v ] # 2D Miller indices for 1D structures
|
|
46
|
+
zero-dimensional:
|
|
47
|
+
shape_function: f(x, y, z) # function that defines the shape of the object
|
|
48
|
+
reusable:
|
|
49
|
+
three-dimensional:
|
|
50
|
+
supercell:
|
|
51
|
+
# created from a crystal, can be used to create a supercell of any size
|
|
52
|
+
- crystal = material
|
|
53
|
+
- matrix = integer_matrix # matrix of integers, defines the size of the supercell
|
|
54
|
+
strained_uniform:
|
|
55
|
+
- crystal = ref:/primitive/base/crystal
|
|
56
|
+
- strain_percentage
|
|
57
|
+
strained_non-uniform:
|
|
58
|
+
- crystal = ref:/primitive/base/crystal
|
|
59
|
+
- strain_matrix
|
|
60
|
+
|
|
61
|
+
two-dimensional:
|
|
62
|
+
crystal_lattice_planes:
|
|
63
|
+
- crystal = material
|
|
64
|
+
- miller_indices = ref:/primitive/two-dimensional/miller_indices
|
|
65
|
+
- use_conventional_cell = bool # if true, the conventional cell is used to generate the planes
|
|
66
|
+
atomic_layers_unique:
|
|
67
|
+
# Generated from the crystal_lattice_planes, together would form a full periodic structure
|
|
68
|
+
- crystal = material
|
|
69
|
+
- miller_indices = ref:/primitive/two-dimensional/miller_indices
|
|
70
|
+
- terminations = [ termination, ... ] # all possible terminations for that orientation
|
|
71
|
+
atomic_layers_unique_repeated:
|
|
72
|
+
# atomic_layers_unique with an integer number of repetitions, form a full periodic structure with top layer specified by the termination
|
|
73
|
+
- crystal = material
|
|
74
|
+
- miller_indices = ref:/primitive/two-dimensional/miller_indices
|
|
75
|
+
- termination_top = termination
|
|
76
|
+
- number_of_repetitions = int # number of repetitions of the unique atomic layers, they are shifted according to the termination
|
|
77
|
+
atomic_layers:
|
|
78
|
+
# Created from atomic_layers_unique in any order defined by terminations
|
|
79
|
+
- crystal = material
|
|
80
|
+
- miller_indices = ref:/primitive/two-dimensional/miller_indices
|
|
81
|
+
- terminations = [ termination, ... ] # any number of any terminations in the order for the layers to occur
|
|
82
|
+
atomic_layer:
|
|
83
|
+
# Created from atomic_layers_unique with a single termination
|
|
84
|
+
- crystal = material
|
|
85
|
+
- miller_indices = ref:/primitive/two-dimensional/miller_indices
|
|
86
|
+
- termination = termination
|
|
87
|
+
slab_unit_cell:
|
|
88
|
+
- stack_components = [ atomic_layers, vacuum ]
|
|
89
|
+
- direction = "z"
|
|
90
|
+
one-dimensional:
|
|
91
|
+
ribbon_section:
|
|
92
|
+
- monolayer = ref:/.../monolayer
|
|
93
|
+
- edge_direction = [ u, v ] # 2D MI, works for ANY 2‑D lattice (unlike zigzag and armchair)
|
|
94
|
+
- width = int # number of unit cells
|
|
95
|
+
ribbon_section_hex:
|
|
96
|
+
- monolayer = ref:/.../monolayer
|
|
97
|
+
- edge_type = ("zigzag" | "armchair"){1}
|
|
98
|
+
- width = int | float # number of unit cells, can be in 0.5 increments
|
|
99
|
+
- length = int | float # number of unit cells
|
|
100
|
+
wire_section:
|
|
101
|
+
# we created a supercell, cut the shape
|
|
102
|
+
- shape = function(x, y, z) # in angstroms, supercell inferred to fit
|
|
103
|
+
- orientation = [h, k, l]
|
|
104
|
+
zero-dimensional:
|
|
105
|
+
nanoparticle:
|
|
106
|
+
# we created a supercell, cut the shape and added vacuum on all sides
|
|
107
|
+
- supercell = ref:/.../supercell
|
|
108
|
+
- shape = function(x, y, z)
|
|
109
|
+
- orientation = [h, k, l] # to align specific plane perpendicular the z-axis
|
|
110
|
+
|
|
111
|
+
operations:
|
|
112
|
+
core:
|
|
113
|
+
modifications:
|
|
114
|
+
strain:
|
|
115
|
+
# can be applied to a crystal, modifies the lattice parameters and preserves basis in crystal coordinates
|
|
116
|
+
- matrix
|
|
117
|
+
repeat:
|
|
118
|
+
- integer_matrix
|
|
119
|
+
perturb:
|
|
120
|
+
# changes coordinates of atoms by applying the function, intended for local displacements
|
|
121
|
+
- function = ∂r -> f(x,y,z)
|
|
122
|
+
- is_isometric = bool # distance preservation -- isometric transformation -- only makes sense in 2D and 1D thin structures
|
|
123
|
+
fold:
|
|
124
|
+
# maps 2D flat plane to a curved surface in 3D space
|
|
125
|
+
- function = f(x, y) -> f(x, y, z)
|
|
126
|
+
- is_isometric = bool
|
|
127
|
+
combinations:
|
|
128
|
+
stack_component: (material | vacuum)
|
|
129
|
+
stack:
|
|
130
|
+
- stack_components = [ stack_component, ... ] # vacuum is added between to add a gap/distance between components
|
|
131
|
+
- direction = ("x" | "y" | "z")|("-x" | "-y" | "-z"){1} # sign indicates the order of the stacking
|
|
132
|
+
merge_component: ( material | vacuum | crystal_site )
|
|
133
|
+
merge:
|
|
134
|
+
- merge_structures = [ material ]
|
|
135
|
+
- method = ("add" | "replace" | "yield" | "smart"){1}
|
|
136
|
+
|
|
137
|
+
material_categories:
|
|
138
|
+
pristine_structures:
|
|
139
|
+
three-dimensional:
|
|
140
|
+
ideal_crystal: ref:/primitive/base/crystal
|
|
141
|
+
|
|
142
|
+
two-dimensional:
|
|
143
|
+
monolayer:
|
|
144
|
+
- stack_components = [ (atomic_layer | atomic_layers), vacuum ]
|
|
145
|
+
- direction = "z"
|
|
146
|
+
slab:
|
|
147
|
+
- stack_components = [ atomic_layers, vacuum ]
|
|
148
|
+
- direction = "z"
|
|
149
|
+
- supercell_xy?
|
|
150
|
+
slab_with_reconstruction:
|
|
151
|
+
- slab = ref:/pristine_structures/two-dimensional/slab
|
|
152
|
+
- has_reconstruction = bool
|
|
153
|
+
- reconstruction_type? # Enum that applies an algorithm
|
|
154
|
+
- reconstruction_function? # Function that changes coordinates of atoms
|
|
155
|
+
|
|
156
|
+
one-dimensional:
|
|
157
|
+
nanotape:
|
|
158
|
+
# we created a supercell from monolayer, cut the shape and added vacuum on one side
|
|
159
|
+
- stack_components = [ ribbon_section, vacuum ]
|
|
160
|
+
- direction = (x | y){1}
|
|
161
|
+
nanowire:
|
|
162
|
+
# we created a supercell, cut the shape and added vacuum on two sides
|
|
163
|
+
- stack_components = [ wire_section, vacuum ]
|
|
164
|
+
- direction = (x | y | z){2} # 2 sides
|
|
165
|
+
|
|
166
|
+
zero-dimensional:
|
|
167
|
+
nanoparticle_with_vacuum:
|
|
168
|
+
- stack_components = [ nanoparticle, vacuum ]
|
|
169
|
+
- direction = (x | y | z){3} # all sides vacuum
|
|
170
|
+
nanoribbon:
|
|
171
|
+
# we created a monolayer supercell, cut the shape and added vacuum on all sides
|
|
172
|
+
- stack_components = [ ribbon_section, vacuum ]
|
|
173
|
+
- direction = (x | y | z){2} # 2 sides
|
|
174
|
+
nanoribbon_hex:
|
|
175
|
+
- stack_components = [ ribbon_section_hex, vacuum ]
|
|
176
|
+
- direction = (x | y | z){2} # 2 sides
|
|
177
|
+
|
|
178
|
+
compound_pristine_structures:
|
|
179
|
+
two-dimensional:
|
|
180
|
+
multi-layer:
|
|
181
|
+
- crystal = ref:/primitive/base/crystal
|
|
182
|
+
# In the code properties below can be supplied externally or generated based on the above with a wizard
|
|
183
|
+
- stacking_order? = ("natural" | "AB" | "ABC" | ...){1} # Natural by default, can be described as a ABC... configurations based on the symmetry
|
|
184
|
+
heterostack:
|
|
185
|
+
- stack_components = [ slab, vacuum, ... ]
|
|
186
|
+
- direction = (x | y | z){1}
|
|
187
|
+
interfaces:
|
|
188
|
+
with_no_vacuum:
|
|
189
|
+
- stack_components = [ (slab | monolayer), (slab | monolayer)]
|
|
190
|
+
- direction = "z"
|
|
191
|
+
with_vacuum:
|
|
192
|
+
- stack_components = [ (slab | monolayer), (slab | monolayer), vacuum ]
|
|
193
|
+
- direction = "z"
|
|
194
|
+
with_gap_and_vacuum:
|
|
195
|
+
- stack_components = [ (slab | monolayer), (slab | monolayer), vacuum ]
|
|
196
|
+
- direction = "z"
|
|
197
|
+
- gap = float # use precise distance between top and bottom layers of the slabs
|
|
198
|
+
commensurate_slabs:
|
|
199
|
+
- stack_components = [ slab, slab, vacuum ]
|
|
200
|
+
- direction = "z"
|
|
201
|
+
commensurate_monolayers_along_x:
|
|
202
|
+
- stack_components = [ monolayer, monolayer, vacuum ]
|
|
203
|
+
- direction = "x"
|
|
204
|
+
twisted_nanoribbons:
|
|
205
|
+
- stack_components = [ nanoribbon, nanoribbon, vacuum ]
|
|
206
|
+
- direction = "z"
|
|
207
|
+
- twist_angle = float
|
|
208
|
+
|
|
209
|
+
defective_structures:
|
|
210
|
+
three-dimensional:
|
|
211
|
+
amorphous:
|
|
212
|
+
- crystal = ref:/primitive/base/crystal
|
|
213
|
+
- function = f(x, y, z) # annealing function
|
|
214
|
+
two-dimensional:
|
|
215
|
+
adatom:
|
|
216
|
+
- merged_structures = [ slab, crystal_site(atom) ]
|
|
217
|
+
island:
|
|
218
|
+
- merged_structures = [ slab, nanoparticle ]
|
|
219
|
+
terrace:
|
|
220
|
+
- added_layers
|
|
221
|
+
- cut (plane + pivot_point)
|
|
222
|
+
- merged_structures = [ slab, nanotape ]
|
|
223
|
+
- is_symmetric = bool
|
|
224
|
+
- is_periodic = bool
|
|
225
|
+
grain_boundary_planar:
|
|
226
|
+
- stack_components = [ slab, slab ]
|
|
227
|
+
- direction = (x | y | z){1}
|
|
228
|
+
grain_boundary_planar_with_vacuum:
|
|
229
|
+
# inherits grain_boundary_planar and slab
|
|
230
|
+
- stack_components = [ slab, slab, vacuum ]
|
|
231
|
+
- direction = "z"
|
|
232
|
+
- number_of_layers
|
|
233
|
+
- terminations = [ termination, termination ]
|
|
234
|
+
one-dimensional:
|
|
235
|
+
grain_boundary_line:
|
|
236
|
+
# A GB between two slabs or monolayers, vacuum in z should be already present
|
|
237
|
+
- stack_components = [ (slab | monolayer), (slab | monolayer) ]
|
|
238
|
+
- direction = (x | y | z){1}
|
|
239
|
+
- angle = float # angle between the two phases
|
|
240
|
+
zero-dimensional:
|
|
241
|
+
vacancy:
|
|
242
|
+
- merged_structures = [ crystal, crystal_site(vacancy) ]
|
|
243
|
+
- method = "replace"
|
|
244
|
+
substitution:
|
|
245
|
+
- merged_structures = [ crystal, crystal_site(atom) ]
|
|
246
|
+
- method = "replace"
|
|
247
|
+
interstitial:
|
|
248
|
+
- merged_structures = [ crystal, crystal_site(atom) ]
|
|
249
|
+
- method = "add"
|
|
250
|
+
defect_pair:
|
|
251
|
+
- merged_structures = [ (vacancy | substitution | interstitial), (vacancy | substitution | interstitial) ]
|
|
252
|
+
- method = "replace
|
|
253
|
+
|
|
254
|
+
processed_structures:
|
|
255
|
+
two-dimensional:
|
|
256
|
+
passivated_surface_2d:
|
|
257
|
+
# we should configure the condition for exposed atoms and then the bond vector for passivation
|
|
258
|
+
- merged_structures = [ slab, crystal_site(atom|particle) ]
|
|
259
|
+
- bond_length = float # can be a map of bond lengths for different elements
|
|
260
|
+
one-dimensional:
|
|
261
|
+
passivated_edge_1d:
|
|
262
|
+
- merged_structures = [ nanotape, crystal_site(atom|particle) ]
|
|
263
|
+
- bond_length = float # can be a map of bond lengths for different elements
|
|
264
|
+
zero-dimensional:
|
|
265
|
+
passivated_edge_0d:
|
|
266
|
+
# Passivation of a particle or a nanoribbon
|
|
267
|
+
- merged_structures = [ nanoparticle, crystal_site(atom|particle) ]
|
|
268
|
+
- bond_length = float
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "materials-category/pristine-structures/three-dimensional/ideal-crystal",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"title": "Ideal Crystal Schema",
|
|
5
|
+
"description": "An ideal, perfect crystal structure",
|
|
6
|
+
"allOf": [
|
|
7
|
+
{
|
|
8
|
+
"$ref": "../../../materials_category_components/entities/core/three-dimensional/crystal.json"
|
|
9
|
+
}
|
|
10
|
+
]
|
|
11
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "materials-category/pristine-structures/two-dimensional/slab",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"title": "Slab Configuration Schema",
|
|
5
|
+
"description": "A slab structure configuration that can optionally include a supercell transformation in the xy plane",
|
|
6
|
+
"allOf": [
|
|
7
|
+
{
|
|
8
|
+
"$ref": "../../../materials_category_components/entities/reusable/two-dimensional/slab_unit_cell.json"
|
|
9
|
+
}
|
|
10
|
+
],
|
|
11
|
+
"properties": {
|
|
12
|
+
"xy_supercell_matrix": {
|
|
13
|
+
"$ref": "../../../materials_category_components/entities/auxiliary/two-dimensional/supercell_matrix_2d.json",
|
|
14
|
+
"description": "Optional 2x2 transformation matrix for creating a supercell in the xy plane"
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$id": "
|
|
2
|
+
"$id": "materials-category-components/entities/auxiliary/three-dimensional/supercell-matrix-3d",
|
|
3
3
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
4
|
"title": "Supercell Matrix 3D Schema",
|
|
5
5
|
"description": "3x3 matrix of integers for transforming a unit cell into a supercell",
|
|
6
6
|
"type": "array",
|
|
7
7
|
"items": {
|
|
8
|
-
"
|
|
9
|
-
"items": {
|
|
10
|
-
"type": "integer"
|
|
11
|
-
},
|
|
12
|
-
"minItems": 3,
|
|
13
|
-
"maxItems": 3
|
|
8
|
+
"$ref": "../../../../core/primitive/array_of_3_integers.json"
|
|
14
9
|
},
|
|
15
10
|
"minItems": 3,
|
|
16
11
|
"maxItems": 3,
|
package/schema/materials_category_components/entities/auxiliary/two-dimensional/miller_indices.json
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "materials-category-components/entities/auxiliary/two-dimensional/miller-indices",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"title": "Miller Indices Schema",
|
|
5
|
+
"description": "Miller indices [h, k, l] defining crystallographic planes",
|
|
6
|
+
"allOf": [
|
|
7
|
+
{
|
|
8
|
+
"$ref": "../../../../core/primitive/array_of_3_integers.json"
|
|
9
|
+
}
|
|
10
|
+
],
|
|
11
|
+
"default": [
|
|
12
|
+
0,
|
|
13
|
+
0,
|
|
14
|
+
1
|
|
15
|
+
]
|
|
16
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$id": "
|
|
2
|
+
"$id": "materials-category-components/entities/auxiliary/two-dimensional/supercell-matrix-2d",
|
|
3
3
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
4
|
"title": "Supercell Matrix 2D Schema",
|
|
5
5
|
"description": "Supercell matrix for xy plane transformations",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$id": "
|
|
2
|
+
"$id": "materials-category-components/entities/auxiliary/two-dimensional/termination",
|
|
3
3
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
4
|
"title": "Termination Schema",
|
|
5
5
|
"description": "Defines a specific termination of a slab",
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
"type": "string",
|
|
16
16
|
"anyOf": [
|
|
17
17
|
{
|
|
18
|
-
"$ref": "
|
|
18
|
+
"$ref": "../../../../definitions/chemical_elements.json#/periodic_table"
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
21
|
"type": "string",
|
|
22
|
-
"pattern": "^[A-Z][a-z]?
|
|
22
|
+
"pattern": "^([A-Z][a-z]?[0-9]*)+$"
|
|
23
23
|
}
|
|
24
24
|
]
|
|
25
25
|
},
|
package/schema/materials_category_components/entities/auxiliary/zero-dimensional/crystal_site.json
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "materials-category-components/entities/auxiliary/zero-dimensional/crystal-site",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"title": "Crystal Site Schema",
|
|
5
|
+
"description": "A site in a crystal that can be populated with an atom, vacancy, or void. Should be place in a target basis.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"coordinate": {
|
|
9
|
+
"$ref": "../../../../core/abstract/coordinate_3d.json"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
"required": [
|
|
13
|
+
"coordinate"
|
|
14
|
+
]
|
|
15
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "materials-category-components/entities/core/three-dimensional/crystal",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"title": "Crystal Schema",
|
|
5
|
+
"description": "A crystal structure, referencing the base material schema",
|
|
6
|
+
"allOf": [
|
|
7
|
+
{
|
|
8
|
+
"$ref": "../../../../material.json"
|
|
9
|
+
}
|
|
10
|
+
]
|
|
11
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "materials-category-components/entities/core/three-dimensional/void",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"title": "Void Schema",
|
|
5
|
+
"description": "A void that can be placed into a crystal, removing all atoms inside",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"center_coordinate": {
|
|
9
|
+
"$ref": "../../../../core/abstract/coordinate_3d.json"
|
|
10
|
+
},
|
|
11
|
+
"shape": {
|
|
12
|
+
"$ref": "../../../../core/reusable/coordinate_conditions/index.json"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"required": [
|
|
16
|
+
"center_coordinate",
|
|
17
|
+
"shape"
|
|
18
|
+
]
|
|
19
|
+
}
|