@mat3ra/esse 2025.7.15-0 → 2025.8.6-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.
Files changed (130) hide show
  1. package/dist/js/example/core/abstract/vector_2d.json +4 -0
  2. package/dist/js/example/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.json +693 -0
  3. package/dist/js/example/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.json +566 -0
  4. package/dist/js/example/materials_category/defective_structures/two_dimensional/adatom/configuration.json +553 -0
  5. package/dist/js/example/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.json +693 -0
  6. package/dist/js/example/materials_category/defective_structures/two_dimensional/island/configuration.json +841 -0
  7. package/dist/js/example/materials_category/defective_structures/two_dimensional/terrace/configuration.json +846 -0
  8. package/dist/js/example/materials_category/defective_structures/zero_dimensional/point_defect/base_configuration.json +271 -0
  9. package/dist/js/example/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.json +271 -0
  10. package/dist/js/example/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.json +271 -0
  11. package/dist/js/example/materials_category/defective_structures/zero_dimensional/point_defect/vacancy.json +136 -0
  12. package/dist/js/example/materials_category/pristine_structures/two_dimensional/nanoribbon.json +419 -0
  13. package/dist/js/example/materials_category/pristine_structures/two_dimensional/nanotape.json +282 -0
  14. package/dist/js/example/materials_category/pristine_structures/two_dimensional/slab.json +1 -11
  15. package/dist/js/example/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.json +305 -0
  16. package/dist/js/example/materials_category/processed_structures/two_dimensional/passivation/configuration.json +551 -0
  17. package/dist/js/example/materials_category_components/entities/auxiliary/one_dimensional/miller_indices_2d.json +4 -0
  18. package/dist/js/example/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.json +128 -0
  19. package/dist/js/example/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.json +138 -0
  20. package/dist/js/example/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.json +135 -0
  21. package/dist/js/example/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.json +145 -0
  22. package/dist/js/example/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.json +547 -0
  23. package/dist/js/example/materials_category_components/operations/core/combinations/merge.json +1 -1
  24. package/dist/js/example/materials_category_components/operations/core/combinations/stack.json +11 -1
  25. package/dist/js/example/materials_category_components/operations/core/modifications/perturb.json +131 -0
  26. package/dist/js/schema/core/abstract/vector_2d.json +11 -0
  27. package/dist/js/schema/core/primitive/array_of_2_numbers.json +11 -0
  28. package/dist/js/schema/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.json +8103 -0
  29. package/dist/js/schema/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.json +8109 -0
  30. package/dist/js/schema/materials_category/defective_structures/two_dimensional/adatom/configuration.json +3563 -0
  31. package/dist/js/schema/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.json +8103 -0
  32. package/dist/js/schema/materials_category/defective_structures/two_dimensional/island/configuration.json +5266 -0
  33. package/dist/js/schema/materials_category/defective_structures/two_dimensional/terrace/configuration.json +5283 -0
  34. package/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/base_configuration.json +787 -0
  35. package/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.json +1722 -0
  36. package/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.json +1722 -0
  37. package/dist/js/schema/{materials_category_components/operations/core/combinations/stack_component.json → materials_category/defective_structures/zero_dimensional/point_defect/vacancy.json} +46 -790
  38. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/nanoribbon.json +2780 -0
  39. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/nanotape.json +1940 -0
  40. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/slab.json +1621 -1625
  41. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.json +1833 -0
  42. package/dist/js/schema/{materials_category_components/entities/reusable/two_dimensional/slab_unit_cell.json → materials_category/processed_structures/two_dimensional/passivation/configuration.json} +1003 -907
  43. package/dist/js/schema/materials_category_components/entities/auxiliary/one_dimensional/miller_indices_2d.json +12 -0
  44. package/dist/js/schema/materials_category_components/entities/auxiliary/two_dimensional/termination.json +1 -0
  45. package/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.json +757 -0
  46. package/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.json +936 -0
  47. package/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/void_region.json +821 -0
  48. package/dist/js/schema/materials_category_components/entities/core/zero_dimensional/vacancy.json +20 -0
  49. package/dist/js/schema/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.json +785 -0
  50. package/dist/js/schema/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.json +1100 -0
  51. package/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/crystal_lattice_base.json +773 -0
  52. package/dist/js/schema/materials_category_components/entities/reusable/{repetitions.json → three_dimensional/repetitions.json} +1 -1
  53. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers.json +18 -18
  54. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique.json +18 -18
  55. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated.json +18 -18
  56. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.json +17 -18
  57. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.json +2631 -0
  58. package/dist/js/schema/materials_category_components/operations/core/combinations/enums.json +12 -0
  59. package/dist/js/schema/materials_category_components/operations/core/combinations/merge.json +12 -1627
  60. package/dist/js/schema/materials_category_components/operations/core/combinations/stack.json +26 -1551
  61. package/dist/js/schema/materials_category_components/operations/core/modifications/perturb.json +768 -0
  62. package/dist/js/schemas.json +1 -1
  63. package/dist/js/types.d.ts +25363 -4551
  64. package/example/core/abstract/vector_2d.json +4 -0
  65. package/example/materials_category/compound_pristine_structures/two-dimensional/interface/configuration.json +18 -0
  66. package/example/materials_category/defective_structures/one-dimensional/grain_boundary_linear/configuration.json +16 -0
  67. package/example/materials_category/defective_structures/two-dimensional/adatom/configuration.json +24 -0
  68. package/example/materials_category/defective_structures/two-dimensional/grain_boundary_planar/configuration.json +18 -0
  69. package/example/materials_category/defective_structures/two-dimensional/island/configuration.json +37 -0
  70. package/example/materials_category/defective_structures/two-dimensional/terrace/configuration.json +42 -0
  71. package/example/materials_category/defective_structures/zero-dimensional/point_defect/base_configuration.json +19 -0
  72. package/example/materials_category/defective_structures/zero-dimensional/point_defect/interstitial.json +21 -0
  73. package/example/materials_category/defective_structures/zero-dimensional/point_defect/substitutional.json +21 -0
  74. package/example/materials_category/defective_structures/zero-dimensional/point_defect/vacancy.json +11 -0
  75. package/example/materials_category/pristine_structures/two-dimensional/nanoribbon.json +42 -0
  76. package/example/materials_category/pristine_structures/two-dimensional/nanotape.json +30 -0
  77. package/example/materials_category/pristine_structures/two-dimensional/slab.json +1 -11
  78. package/example/materials_category/pristine_structures/two-dimensional/slab_strained_supercell.json +55 -0
  79. package/example/materials_category/processed_structures/two-dimensional/passivation/configuration.json +45 -0
  80. package/example/materials_category_components/entities/auxiliary/one-dimensional/miller_indices_2d.json +2 -0
  81. package/example/materials_category_components/entities/auxiliary/zero-dimensional/crystal_site.json +7 -2
  82. package/example/materials_category_components/entities/auxiliary/zero-dimensional/point_defect_site.json +11 -0
  83. package/example/materials_category_components/entities/reusable/one-dimensional/crystal_lattice_lines.json +8 -0
  84. package/example/materials_category_components/entities/reusable/one-dimensional/crystal_lattice_lines_unique_repeated.json +18 -0
  85. package/example/materials_category_components/entities/reusable/three-dimensional/repetitions.json +3 -0
  86. package/example/materials_category_components/entities/reusable/two-dimensional/slab_stack_configuration.json +22 -0
  87. package/example/materials_category_components/operations/core/combinations/merge.json +2 -2
  88. package/example/materials_category_components/operations/core/combinations/stack.json +12 -2
  89. package/example/materials_category_components/operations/core/modifications/perturb.json +6 -0
  90. package/package.json +1 -1
  91. package/schema/core/abstract/vector_2d.json +10 -0
  92. package/schema/core/primitive/array_of_2_numbers.json +11 -0
  93. package/schema/materials_category/compound_pristine_structures/two-dimensional/interface/configuration.json +59 -0
  94. package/schema/materials_category/defective_structures/one-dimensional/grain_boundary_linear/configuration.json +34 -0
  95. package/schema/materials_category/defective_structures/two-dimensional/adatom/configuration.json +26 -0
  96. package/schema/materials_category/defective_structures/two-dimensional/grain_boundary_planar/configuration.json +16 -0
  97. package/schema/materials_category/defective_structures/two-dimensional/island/configuration.json +48 -0
  98. package/schema/materials_category/defective_structures/two-dimensional/terrace/configuration.json +55 -0
  99. package/schema/materials_category/defective_structures/zero-dimensional/point_defect/base_configuration.json +30 -0
  100. package/schema/materials_category/defective_structures/zero-dimensional/point_defect/interstitial.json +23 -0
  101. package/schema/materials_category/defective_structures/zero-dimensional/point_defect/substitutional.json +23 -0
  102. package/schema/materials_category/defective_structures/zero-dimensional/point_defect/vacancy.json +23 -0
  103. package/schema/materials_category/manifest.yaml +51 -232
  104. package/schema/materials_category/pristine_structures/two-dimensional/nanoribbon.json +29 -0
  105. package/schema/materials_category/pristine_structures/two-dimensional/nanotape.json +29 -0
  106. package/schema/materials_category/pristine_structures/two-dimensional/slab.json +18 -6
  107. package/schema/materials_category/pristine_structures/two-dimensional/slab_strained_supercell.json +25 -0
  108. package/schema/materials_category/processed_structures/two-dimensional/passivation/configuration.json +45 -0
  109. package/schema/materials_category_components/entities/auxiliary/one-dimensional/miller_indices_2d.json +13 -0
  110. package/schema/materials_category_components/entities/auxiliary/two-dimensional/termination.json +1 -0
  111. package/schema/materials_category_components/entities/auxiliary/zero-dimensional/crystal_site.json +4 -0
  112. package/schema/materials_category_components/entities/auxiliary/zero-dimensional/point_defect_site.json +30 -0
  113. package/schema/materials_category_components/entities/auxiliary/zero-dimensional/void_region.json +18 -0
  114. package/schema/materials_category_components/entities/core/zero-dimensional/vacancy.json +20 -0
  115. package/schema/materials_category_components/entities/reusable/one-dimensional/crystal_lattice_lines.json +20 -0
  116. package/schema/materials_category_components/entities/reusable/one-dimensional/crystal_lattice_lines_unique_repeated.json +37 -0
  117. package/schema/materials_category_components/entities/reusable/three-dimensional/crystal_lattice_base.json +20 -0
  118. package/schema/materials_category_components/entities/reusable/{repetitions.json → three-dimensional/repetitions.json} +1 -1
  119. package/schema/materials_category_components/entities/reusable/two-dimensional/crystal_lattice_planes.json +6 -11
  120. package/schema/materials_category_components/entities/reusable/two-dimensional/slab_stack_configuration.json +32 -0
  121. package/schema/materials_category_components/operations/core/combinations/enums.json +12 -0
  122. package/schema/materials_category_components/operations/core/combinations/merge.json +9 -23
  123. package/schema/materials_category_components/operations/core/combinations/stack.json +20 -5
  124. package/schema/materials_category_components/operations/core/modifications/perturb.json +16 -0
  125. package/dist/js/example/materials_category_components/operations/core/combinations/stack_component.json +0 -128
  126. package/example/materials_category_components/entities/reusable/repetitions.json +0 -1
  127. package/example/materials_category_components/operations/core/combinations/stack_component.json +0 -3
  128. package/schema/materials_category_components/entities/reusable/two-dimensional/slab_unit_cell.json +0 -33
  129. package/schema/materials_category_components/operations/core/combinations/stack_component.json +0 -14
  130. /package/dist/js/example/materials_category_components/entities/reusable/{repetitions.json → three_dimensional/repetitions.json} +0 -0
@@ -0,0 +1,34 @@
1
+ {
2
+ "$id": "materials-category/defective-structures/one-dimensional/grain-boundary-linear/configuration",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Grain Boundary Linear Configuration Schema",
5
+ "description": "Configuration for creating a linear grain boundary.",
6
+ "allOf": [
7
+ {
8
+ "$ref": "../../../compound_pristine_structures/two-dimensional/interface/configuration.json"
9
+ }
10
+ ],
11
+ "properties": {
12
+ "stack_components": {
13
+ "maxItems": 2
14
+ },
15
+ "direction": {
16
+ "allOf": [
17
+ {
18
+ "$ref": "../../../../core/primitive/axis_3d_names_enum.json"
19
+ }
20
+ ],
21
+ "default": "x"
22
+ },
23
+ "actual_angle": {
24
+ "type": "number",
25
+ "description": "The actual angle between the two phases",
26
+ "minimum": 0,
27
+ "maximum": 360
28
+ }
29
+ },
30
+ "required": [
31
+ "stack_components",
32
+ "direction"
33
+ ]
34
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "$id": "materials-category/defective-structures/two-dimensional/adatom/configuration",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Adatom Defect Configuration Schema",
5
+ "description": "An adatom point defect configuration where an atom is added to a surface site on a slab.",
6
+ "allOf": [
7
+ {
8
+ "$ref": "../../../../materials_category_components/entities/reusable/two-dimensional/slab_stack_configuration.json"
9
+ }
10
+ ],
11
+ "properties": {
12
+ "stack_components": {
13
+ "items": [
14
+ {
15
+ "$ref": "../../../pristine_structures/two-dimensional/slab.json"
16
+ },
17
+ {
18
+ "$ref": "../../../../materials_category_components/entities/auxiliary/zero-dimensional/point_defect_site.json"
19
+ },
20
+ {
21
+ "$ref": "../../../../materials_category_components/entities/core/two-dimensional/vacuum.json"
22
+ }
23
+ ]
24
+ }
25
+ }
26
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$id": "materials-category/defective-structures/two-dimensional/grain-boundary-planar/configuration",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Grain Boundary Planar Configuration Schema",
5
+ "description": "Configuration for creating a grain boundary between two phases.",
6
+ "allOf": [
7
+ {
8
+ "$ref": "../../../compound_pristine_structures/two-dimensional/interface/configuration.json"
9
+ }
10
+ ],
11
+ "properties": {
12
+ "direction": {
13
+ "default": "z"
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,48 @@
1
+ {
2
+ "$id": "materials-category/defective-structures/two-dimensional/island/configuration",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Island Defect Configuration Schema",
5
+ "description": "An island defect configuration where a void region is created in a slab, leaving an island of material.",
6
+ "allOf": [
7
+ {
8
+ "$ref": "../../../../materials_category_components/entities/reusable/two-dimensional/slab_stack_configuration.json"
9
+ }
10
+ ],
11
+ "properties": {
12
+ "stack_components": {
13
+ "items": [
14
+ {
15
+ "$ref": "../../../pristine_structures/two-dimensional/slab.json"
16
+ },
17
+ {
18
+ "allOf": [
19
+ {
20
+ "$ref": "../../../../materials_category_components/operations/core/combinations/merge.json"
21
+ }
22
+ ],
23
+ "properties": {
24
+ "merge_components": {
25
+ "type": "array",
26
+ "minItems": 2,
27
+ "maxItems": 2,
28
+ "items": [
29
+ {
30
+ "$ref": "../../../pristine_structures/two-dimensional/slab.json"
31
+ },
32
+ {
33
+ "$ref": "../../../../materials_category_components/entities/auxiliary/zero-dimensional/void_region.json"
34
+ }
35
+ ]
36
+ },
37
+ "merge_method": {
38
+ "default": "REPLACE"
39
+ }
40
+ }
41
+ },
42
+ {
43
+ "$ref": "../../../../materials_category_components/entities/core/two-dimensional/vacuum.json"
44
+ }
45
+ ]
46
+ }
47
+ }
48
+ }
@@ -0,0 +1,55 @@
1
+ {
2
+ "$id": "materials-category/defective-structures/two-dimensional/terrace/configuration",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Terrace Defect Configuration Schema",
5
+ "description": "An terrace defect configuration where a void region is created in a slab that is stacked with another slab, creating a terrace.",
6
+ "allOf": [
7
+ {
8
+ "$ref": "../../../../materials_category_components/entities/reusable/two-dimensional/slab_stack_configuration.json"
9
+ }
10
+ ],
11
+ "properties": {
12
+ "stack_components": {
13
+ "items": [
14
+ {
15
+ "$ref": "../../../pristine_structures/two-dimensional/slab.json"
16
+ },
17
+ {
18
+ "allOf": [
19
+ {
20
+ "$ref": "../../../../materials_category_components/operations/core/combinations/merge.json"
21
+ }
22
+ ],
23
+ "properties": {
24
+ "merge_components": {
25
+ "type": "array",
26
+ "minItems": 2,
27
+ "maxItems": 2,
28
+ "items": [
29
+ {
30
+ "$ref": "../../../pristine_structures/two-dimensional/slab.json"
31
+ },
32
+ {
33
+ "$ref": "../../../../materials_category_components/entities/auxiliary/zero-dimensional/void_region.json"
34
+ }
35
+ ]
36
+ },
37
+ "merge_method": {
38
+ "default": "REPLACE"
39
+ }
40
+ }
41
+ },
42
+ {
43
+ "$ref": "../../../../materials_category_components/entities/core/two-dimensional/vacuum.json"
44
+ }
45
+ ]
46
+ },
47
+ "cut_direction": {
48
+ "$ref": "../../../../materials_category_components/entities/auxiliary/two-dimensional/miller_indices.json"
49
+ }
50
+ },
51
+ "required": [
52
+ "stack_components",
53
+ "cut_direction"
54
+ ]
55
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "$id": "materials-category/defective-structures/zero-dimensional/point-defect/base-configuration",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Point Defect Base Configuration Schema",
5
+ "description": "Base configuration for a point defect in a host crystal using merge operation.",
6
+ "allOf": [
7
+ {
8
+ "$ref": "../../../../materials_category_components/operations/core/combinations/merge.json"
9
+ }
10
+ ],
11
+ "properties": {
12
+ "merge_components": {
13
+ "type": "array",
14
+ "minItems": 2,
15
+ "maxItems": 2,
16
+ "items": [
17
+ {
18
+ "$ref": "../../../../materials_category_components/entities/core/three-dimensional/crystal.json"
19
+ }
20
+ ]
21
+ },
22
+ "merge_method": {
23
+ "default": "REPLACE"
24
+ }
25
+ },
26
+ "required": [
27
+ "merge_components",
28
+ "merge_method"
29
+ ]
30
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "$id": "materials-category/defective-structures/zero-dimensional/point-defect/interstitial",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Interstitial Point Defect Schema",
5
+ "description": "An interstitial point defect configuration where an atom is added to an interstitial site.",
6
+ "allOf": [
7
+ {
8
+ "$ref": "./base_configuration.json"
9
+ }
10
+ ],
11
+ "properties": {
12
+ "merge_components": {
13
+ "items": [
14
+ {
15
+ "$ref": "../../../../materials_category_components/entities/core/three-dimensional/crystal.json"
16
+ },
17
+ {
18
+ "$ref": "../../../../materials_category_components/entities/auxiliary/zero-dimensional/point_defect_site.json"
19
+ }
20
+ ]
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "$id": "materials-category/defective-structures/zero-dimensional/point-defect/substitutional",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Substitutional Point Defect Schema",
5
+ "description": "A substitutional point defect configuration where an atom at a crystal site is replaced with a different element.",
6
+ "allOf": [
7
+ {
8
+ "$ref": "./base_configuration.json"
9
+ }
10
+ ],
11
+ "properties": {
12
+ "merge_components": {
13
+ "items": [
14
+ {
15
+ "$ref": "../../../../materials_category_components/entities/core/three-dimensional/crystal.json"
16
+ },
17
+ {
18
+ "$ref": "../../../../materials_category_components/entities/auxiliary/zero-dimensional/point_defect_site.json"
19
+ }
20
+ ]
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "$id": "materials-category/defective-structures/zero-dimensional/point-defect/vacancy",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Vacancy Point Defect Schema",
5
+ "description": "A vacancy point defect configuration where an atom is removed from a crystal site.",
6
+ "allOf": [
7
+ {
8
+ "$ref": "./base_configuration.json"
9
+ }
10
+ ],
11
+ "properties": {
12
+ "merge_components": {
13
+ "items": [
14
+ {
15
+ "$ref": "../../../../materials_category_components/entities/core/three-dimensional/crystal.json"
16
+ },
17
+ {
18
+ "$ref": "../../../../materials_category_components/entities/core/zero-dimensional/vacancy.json"
19
+ }
20
+ ]
21
+ }
22
+ }
23
+ }
@@ -1,268 +1,87 @@
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
- #
1
+ # This manifest describes the structure of materials categories and their components.
12
2
 
13
3
  materials_category_components:
14
4
  entities:
15
5
  core:
16
6
  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
7
+ - crystal
8
+ - void
22
9
  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 ]
10
+ - vacuum
31
11
  one-dimensional:
12
+ # empty directory
32
13
  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
14
+ - atom
15
+ - vacancy
16
+ auxiliary:
40
17
  three-dimensional:
41
- supercell_matrix_3d:
18
+ - supercell_matrix_3d
42
19
  two-dimensional:
43
- miller_indices: [ h, k ] # 2D Miller indices
20
+ - miller_indices
21
+ - supercell_matrix_2d
22
+ - termination
44
23
  one-dimensional:
45
- edge_direction: [ u, v ] # 2D Miller indices for 1D structures
24
+ - miller_indices_2d
46
25
  zero-dimensional:
47
- shape_function: f(x, y, z) # function that defines the shape of the object
26
+ - crystal_site
27
+ - point_defect_site
28
+ - void_region
48
29
  reusable:
49
30
  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
-
31
+ - crystal_lattice_base
32
+ - repetitions
33
+ - strained_non_uniform
34
+ - strained_uniform
35
+ - supercell
61
36
  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"
37
+ - atomic_layers
38
+ - atomic_layers_unique
39
+ - atomic_layers_unique_repeated
40
+ - crystal_lattice_planes
41
+ - slab_stack_configuration
90
42
  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
43
+ - crystal_lattice_lines
44
+ - crystal_lattice_lines_unique_repeated
110
45
 
111
46
  operations:
112
47
  core:
113
48
  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
49
+ - perturb
50
+ - repeat
51
+ - strain
127
52
  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}
53
+ - enums
54
+ - merge
55
+ - stack
136
56
 
137
- material_categories:
57
+ materials_category:
138
58
  pristine_structures:
139
59
  three-dimensional:
140
- ideal_crystal: ref:/primitive/base/crystal
141
-
60
+ - ideal_crystal
142
61
  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
62
+ - nanoribbon
63
+ - nanotape
64
+ - slab
65
+ - slab_strained_supercell
177
66
 
178
67
  compound_pristine_structures:
179
68
  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
69
+ - interface
208
70
 
209
71
  defective_structures:
210
- three-dimensional:
211
- amorphous:
212
- - crystal = ref:/primitive/base/crystal
213
- - function = f(x, y, z) # annealing function
214
72
  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 ]
73
+ - adatom
74
+ - grain_boundary_planar
75
+ - island
76
+ - terrace
234
77
  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
78
+ - grain_boundary_linear
240
79
  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
80
+ point_defect:
81
+ - interstitial
82
+ - substitutional
83
+ - vacancy
253
84
 
254
85
  processed_structures:
255
86
  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
87
+ - passivation
@@ -0,0 +1,29 @@
1
+ {
2
+ "$id": "materials-category/pristine-structures/two-dimensional/nanoribbon",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Nanoribbon Configuration Schema",
5
+ "description": "A nanoribbon unit cell consisting of nanotape and vacuum stacked in X direction.",
6
+ "allOf": [
7
+ {
8
+ "$ref": "../../../materials_category_components/operations/core/combinations/stack.json"
9
+ }
10
+ ],
11
+ "properties": {
12
+ "stack_components": {
13
+ "type": "array",
14
+ "minItems": 2,
15
+ "maxItems": 2,
16
+ "items": [
17
+ {
18
+ "$ref": "nanotape.json"
19
+ },
20
+ {
21
+ "$ref": "../../../materials_category_components/entities/core/two-dimensional/vacuum.json"
22
+ }
23
+ ]
24
+ },
25
+ "direction": {
26
+ "default": "x"
27
+ }
28
+ }
29
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "$id": "materials-category/pristine-structures/two-dimensional/nanotape",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "NanoTape Configuration Schema",
5
+ "description": "A nanotape unit cell consisting of crystal lattice lines and vacuum stacked in Y direction.",
6
+ "allOf": [
7
+ {
8
+ "$ref": "../../../materials_category_components/operations/core/combinations/stack.json"
9
+ }
10
+ ],
11
+ "properties": {
12
+ "stack_components": {
13
+ "type": "array",
14
+ "minItems": 2,
15
+ "maxItems": 2,
16
+ "items": [
17
+ {
18
+ "$ref": "../../../materials_category_components/entities/reusable/one-dimensional/crystal_lattice_lines_unique_repeated.json"
19
+ },
20
+ {
21
+ "$ref": "../../../materials_category_components/entities/core/two-dimensional/vacuum.json"
22
+ }
23
+ ]
24
+ },
25
+ "direction": {
26
+ "default": "y"
27
+ }
28
+ }
29
+ }