@mat3ra/esse 2025.5.17-2 → 2025.6.5-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 (179) hide show
  1. package/dist/js/example/apse/materials/builders/slab/pymatgen/parameters.json +1 -1
  2. package/dist/js/example/materials_category/pristine_structures/two_dimensional/slab.json +160 -0
  3. package/dist/js/example/{material/reusable/supercell → materials_category_components/entities/auxiliary/three_dimensional}/supercell_matrix_3d.json +2 -2
  4. package/dist/js/example/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.json +7 -0
  5. package/dist/js/example/materials_category_components/entities/core/three_dimensional/crystal.json +128 -0
  6. package/dist/js/example/materials_category_components/entities/core/three_dimensional/void.json +20 -0
  7. package/dist/js/example/materials_category_components/entities/core/two_dimensional/vacuum.json +4 -0
  8. package/dist/js/example/materials_category_components/entities/core/zero_dimensional/atom.json +3 -0
  9. package/dist/js/example/materials_category_components/entities/reusable/repetitions.json +5 -0
  10. package/dist/js/example/{material/reusable/slab_configuration_with_termination.json → materials_category_components/operations/core/combinations/merge.json} +8 -27
  11. package/dist/js/example/materials_category_components/operations/core/combinations/stack.json +137 -0
  12. package/dist/js/example/materials_category_components/operations/core/combinations/stack_component.json +128 -0
  13. package/dist/js/example/materials_category_components/operations/core/modifications/repeat.json +19 -0
  14. package/dist/js/example/materials_category_components/operations/core/modifications/strain.json +19 -0
  15. package/dist/js/schema/apse/materials/builders/slab/pymatgen/parameters.json +3 -3
  16. package/dist/js/schema/core/primitive/array_of_3_integers.json +11 -0
  17. package/dist/js/schema/{materials_category/defects/two_dimensional/island/condition.json.json → core/reusable/coordinate_conditions.json} +4 -2
  18. package/dist/js/schema/materials_category/pristine_structures/three_dimensional/ideal_crystal.json +757 -0
  19. package/dist/js/schema/materials_category/{multi_material/interfaces/configuration.json → pristine_structures/two_dimensional/slab.json} +231 -230
  20. package/dist/js/schema/{material/reusable/supercell → materials_category_components/entities/auxiliary/three_dimensional}/supercell_matrix_3d.json +3 -1
  21. package/dist/js/schema/{material/reusable/slab → materials_category_components/entities/auxiliary/two_dimensional}/miller_indices.json +5 -5
  22. package/dist/js/schema/{material/reusable/supercell → materials_category_components/entities/auxiliary/two_dimensional}/supercell_matrix_2d.json +1 -1
  23. package/dist/js/schema/{material/reusable/slab → materials_category_components/entities/auxiliary/two_dimensional}/termination.json +1 -1
  24. package/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.json +22 -0
  25. package/dist/js/schema/materials_category_components/entities/core/three_dimensional/crystal.json +757 -0
  26. package/dist/js/schema/materials_category_components/entities/core/three_dimensional/void.json +76 -0
  27. package/dist/js/schema/materials_category_components/entities/core/two_dimensional/vacuum.json +30 -0
  28. package/dist/js/schema/materials_category_components/entities/core/zero_dimensional/atom.json +134 -0
  29. package/dist/js/schema/{material → materials_category_components/entities}/reusable/repetitions.json +1 -1
  30. package/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.json +786 -0
  31. package/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/strained_uniform.json +773 -0
  32. package/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/supercell.json +786 -0
  33. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers.json +947 -0
  34. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique.json +947 -0
  35. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated.json +948 -0
  36. 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
  37. package/dist/js/schema/{material/reusable/stack/stack_of_slabs.json → materials_category_components/entities/reusable/two_dimensional/slab_unit_cell.json} +207 -230
  38. package/dist/js/schema/materials_category_components/operations/core/combinations/merge.json +884 -0
  39. package/dist/js/schema/materials_category_components/operations/core/combinations/stack.json +818 -0
  40. package/dist/js/schema/materials_category_components/operations/core/combinations/stack_component.json +793 -0
  41. package/dist/js/schema/materials_category_components/operations/core/modifications/repeat.json +42 -0
  42. package/dist/js/schema/materials_category_components/operations/core/modifications/strain.json +24 -0
  43. package/dist/js/schemas.json +1 -1
  44. package/dist/js/types.d.ts +3464 -6059
  45. package/example/apse/materials/builders/slab/pymatgen/parameters.json +1 -1
  46. package/example/materials_category/pristine_structures/two-dimensional/slab.json +35 -0
  47. package/example/materials_category_components/entities/auxiliary/three-dimensional/supercell_matrix_3d.json +5 -0
  48. package/example/materials_category_components/entities/auxiliary/two-dimensional/miller_indices.json +1 -0
  49. package/example/materials_category_components/entities/auxiliary/two-dimensional/supercell_matrix_2d.json +4 -0
  50. package/example/{material/reusable/slab → materials_category_components/entities/auxiliary/two-dimensional}/termination.json +1 -1
  51. package/example/materials_category_components/entities/auxiliary/zero-dimensional/crystal_site.json +3 -0
  52. package/example/materials_category_components/entities/core/three-dimensional/crystal.json +3 -0
  53. package/example/materials_category_components/entities/core/three-dimensional/void.json +8 -0
  54. package/example/materials_category_components/entities/core/two-dimensional/vacuum.json +4 -0
  55. package/example/materials_category_components/entities/core/zero-dimensional/atom.json +3 -0
  56. package/example/materials_category_components/entities/reusable/repetitions.json +1 -0
  57. package/example/materials_category_components/operations/core/combinations/merge.json +11 -0
  58. package/example/materials_category_components/operations/core/combinations/stack.json +11 -0
  59. package/example/materials_category_components/operations/core/combinations/stack_component.json +3 -0
  60. package/example/materials_category_components/operations/core/modifications/repeat.json +13 -0
  61. package/example/materials_category_components/operations/core/modifications/strain.json +7 -0
  62. package/package.json +1 -1
  63. package/schema/apse/materials/builders/slab/pymatgen/parameters.json +3 -3
  64. package/schema/core/primitive/array_of_3_integers.json +11 -0
  65. package/schema/core/reusable/coordinate_conditions/index.json +11 -0
  66. package/schema/materials_category/manifest.yaml +268 -0
  67. package/schema/materials_category/pristine_structures/three-dimensional/ideal_crystal.json +11 -0
  68. package/schema/materials_category/pristine_structures/two-dimensional/slab.json +17 -0
  69. package/schema/{material/reusable/supercell → materials_category_components/entities/auxiliary/three-dimensional}/supercell_matrix_3d.json +2 -7
  70. package/schema/materials_category_components/entities/auxiliary/two-dimensional/miller_indices.json +16 -0
  71. package/schema/{material/reusable/supercell → materials_category_components/entities/auxiliary/two-dimensional}/supercell_matrix_2d.json +1 -1
  72. package/schema/{material/reusable/slab → materials_category_components/entities/auxiliary/two-dimensional}/termination.json +2 -2
  73. package/schema/materials_category_components/entities/auxiliary/zero-dimensional/crystal_site.json +15 -0
  74. package/schema/materials_category_components/entities/core/three-dimensional/crystal.json +11 -0
  75. package/schema/materials_category_components/entities/core/three-dimensional/void.json +19 -0
  76. package/schema/materials_category_components/entities/core/two-dimensional/vacuum.json +22 -0
  77. package/schema/materials_category_components/entities/core/zero-dimensional/atom.json +15 -0
  78. package/schema/{material → materials_category_components/entities}/reusable/repetitions.json +1 -1
  79. package/schema/materials_category_components/entities/reusable/three-dimensional/strained_non_uniform.json +20 -0
  80. package/schema/materials_category_components/entities/reusable/three-dimensional/strained_uniform.json +20 -0
  81. package/schema/materials_category_components/entities/reusable/three-dimensional/supercell.json +20 -0
  82. package/schema/materials_category_components/entities/reusable/two-dimensional/atomic_layers.json +12 -0
  83. package/schema/materials_category_components/entities/reusable/two-dimensional/atomic_layers_unique.json +25 -0
  84. package/schema/materials_category_components/entities/reusable/two-dimensional/atomic_layers_unique_repeated.json +27 -0
  85. package/schema/materials_category_components/entities/reusable/two-dimensional/crystal_lattice_planes.json +25 -0
  86. package/schema/materials_category_components/entities/reusable/two-dimensional/slab_unit_cell.json +33 -0
  87. package/schema/materials_category_components/operations/core/combinations/merge.json +33 -0
  88. package/schema/materials_category_components/operations/core/combinations/stack.json +21 -0
  89. package/schema/materials_category_components/operations/core/combinations/stack_component.json +14 -0
  90. package/schema/materials_category_components/operations/core/modifications/repeat.json +10 -0
  91. package/schema/materials_category_components/operations/core/modifications/strain.json +10 -0
  92. package/dist/js/example/material/builders/base/selector_parameters.json +0 -3
  93. package/dist/js/example/material/builders/single_material/two_dimensional/slab/selector_parameters.json +0 -6
  94. package/dist/js/example/material/reusable/repetitions.json +0 -5
  95. package/dist/js/example/material/reusable/slab/number_of_layers.json +0 -1
  96. package/dist/js/example/material/reusable/slab/vacuum.json +0 -1
  97. package/dist/js/example/materials_category/defects/by_host/two_dimensional/adatom/configuration.json +0 -138
  98. package/dist/js/example/materials_category/defects/by_host/two_dimensional/point/configuration.json +0 -135
  99. package/dist/js/example/materials_category/defects/configuration.json +0 -130
  100. package/dist/js/example/materials_category/defects/one_dimensional/terrace/configuration.json +0 -144
  101. package/dist/js/example/materials_category/defects/two_dimensional/grain_boundary_plane/configuration.json +0 -475
  102. package/dist/js/example/materials_category/defects/zero_dimensional/complex/pair/configuration.json +0 -406
  103. package/dist/js/example/materials_category/defects/zero_dimensional/point/configuration.json +0 -138
  104. package/dist/js/example/materials_category/defects/zero_dimensional/point/interstitial/configuration.json +0 -139
  105. package/dist/js/example/materials_category/defects/zero_dimensional/point/substitution/configuration.json +0 -138
  106. package/dist/js/example/materials_category/defects/zero_dimensional/point/vacancy/configuration.json +0 -137
  107. package/dist/js/example/materials_category/single_material/two_dimensional/slab/configuration.json +0 -150
  108. package/dist/js/schema/material/builders/base/selector_parameters.json +0 -15
  109. package/dist/js/schema/material/builders/single_material/two_dimensional/slab/builder_parameters.json +0 -33
  110. package/dist/js/schema/material/builders/single_material/two_dimensional/slab/selector_parameters.json +0 -159
  111. package/dist/js/schema/material/reusable/slab/enums/exposed_face.json +0 -11
  112. package/dist/js/schema/material/reusable/slab/number_of_layers.json +0 -9
  113. package/dist/js/schema/material/reusable/slab/vacuum.json +0 -9
  114. package/dist/js/schema/material/reusable/slab_configuration_with_termination.json +0 -996
  115. package/dist/js/schema/material/reusable/stack/slab_in_stack.json +0 -1005
  116. package/dist/js/schema/material/reusable/stack/stack_of_two_slabs.json +0 -1033
  117. package/dist/js/schema/materials_category/defects/by_host/two_dimensional/adatom/configuration.json +0 -926
  118. package/dist/js/schema/materials_category/defects/by_host/two_dimensional/layered/configuration.json +0 -794
  119. package/dist/js/schema/materials_category/defects/by_host/two_dimensional/point/configuration.json +0 -803
  120. package/dist/js/schema/materials_category/defects/configuration.json +0 -786
  121. package/dist/js/schema/materials_category/defects/enums/point_defect_type.json +0 -11
  122. package/dist/js/schema/materials_category/defects/one_dimensional/terrace/configuration.json +0 -831
  123. package/dist/js/schema/materials_category/defects/two_dimensional/grain_boundary_plane/configuration.json +0 -2019
  124. package/dist/js/schema/materials_category/defects/two_dimensional/island/configuration.json +0 -845
  125. package/dist/js/schema/materials_category/defects/zero_dimensional/complex/pair/configuration.json +0 -2634
  126. package/dist/js/schema/materials_category/defects/zero_dimensional/point/configuration.json +0 -925
  127. package/dist/js/schema/materials_category/defects/zero_dimensional/point/interstitial/configuration.json +0 -926
  128. package/dist/js/schema/materials_category/defects/zero_dimensional/point/substitution/configuration.json +0 -926
  129. package/dist/js/schema/materials_category/defects/zero_dimensional/point/vacancy/configuration.json +0 -926
  130. package/example/material/builders/base/selector_parameters.json +0 -3
  131. package/example/material/builders/single_material/two_dimensional/slab/selector_parameters.json +0 -6
  132. package/example/material/reusable/repetitions.json +0 -1
  133. package/example/material/reusable/slab/miller_indices.json +0 -5
  134. package/example/material/reusable/slab/number_of_layers.json +0 -1
  135. package/example/material/reusable/slab/vacuum.json +0 -1
  136. package/example/material/reusable/slab_configuration_with_termination.json +0 -8
  137. package/example/material/reusable/supercell/supercell_matrix_2d.json +0 -10
  138. package/example/material/reusable/supercell/supercell_matrix_3d.json +0 -11
  139. package/example/materials_category/defects/by_host/two-dimensional/adatom/configuration.json +0 -11
  140. package/example/materials_category/defects/by_host/two-dimensional/point/configuration.json +0 -8
  141. package/example/materials_category/defects/configuration.json +0 -5
  142. package/example/materials_category/defects/one-dimensional/terrace/configuration.json +0 -19
  143. package/example/materials_category/defects/two-dimensional/grain_boundary_plane/configuration.json +0 -21
  144. package/example/materials_category/defects/zero-dimensional/complex/pair/configuration.json +0 -9
  145. package/example/materials_category/defects/zero-dimensional/point/configuration.json +0 -11
  146. package/example/materials_category/defects/zero-dimensional/point/interstitial/configuration.json +0 -14
  147. package/example/materials_category/defects/zero-dimensional/point/substitution/configuration.json +0 -13
  148. package/example/materials_category/defects/zero-dimensional/point/vacancy/configuration.json +0 -12
  149. package/example/materials_category/single_material/two_dimensional/slab/configuration.json +0 -25
  150. package/schema/material/builders/base/selector_parameters.json +0 -15
  151. package/schema/material/builders/single_material/two_dimensional/slab/builder_parameters.json +0 -12
  152. package/schema/material/builders/single_material/two_dimensional/slab/selector_parameters.json +0 -12
  153. package/schema/material/reusable/slab/enums/exposed_face.json +0 -11
  154. package/schema/material/reusable/slab/miller_indices.json +0 -17
  155. package/schema/material/reusable/slab/number_of_layers.json +0 -9
  156. package/schema/material/reusable/slab/vacuum.json +0 -9
  157. package/schema/material/reusable/slab_configuration_with_termination.json +0 -19
  158. package/schema/material/reusable/stack/slab_in_stack.json +0 -26
  159. package/schema/material/reusable/stack/stack_of_slabs.json +0 -31
  160. package/schema/material/reusable/stack/stack_of_two_slabs.json +0 -17
  161. package/schema/materials_category/defects/by_host/two-dimensional/adatom/configuration.json +0 -16
  162. package/schema/materials_category/defects/by_host/two-dimensional/layered/configuration.json +0 -16
  163. package/schema/materials_category/defects/by_host/two-dimensional/point/configuration.json +0 -26
  164. package/schema/materials_category/defects/configuration.json +0 -34
  165. package/schema/materials_category/defects/one-dimensional/terrace/configuration.json +0 -44
  166. package/schema/materials_category/defects/two-dimensional/grain_boundary_plane/configuration.json +0 -20
  167. package/schema/materials_category/defects/two-dimensional/island/condition.json +0 -9
  168. package/schema/materials_category/defects/two-dimensional/island/configuration.json +0 -18
  169. package/schema/materials_category/defects/zero-dimensional/complex/pair/configuration.json +0 -20
  170. package/schema/materials_category/defects/zero-dimensional/point/configuration.json +0 -34
  171. package/schema/materials_category/defects/zero-dimensional/point/enums/type.json +0 -11
  172. package/schema/materials_category/defects/zero-dimensional/point/interstitial/configuration.json +0 -16
  173. package/schema/materials_category/defects/zero-dimensional/point/substitution/configuration.json +0 -16
  174. package/schema/materials_category/defects/zero-dimensional/point/vacancy/configuration.json +0 -16
  175. package/schema/materials_category/multi-material/interfaces/configuration.json +0 -12
  176. package/schema/materials_category/single_material/two_dimensional/slab/configuration.json +0 -36
  177. /package/dist/js/example/{material/reusable/slab → materials_category_components/entities/auxiliary/two_dimensional}/miller_indices.json +0 -0
  178. /package/dist/js/example/{material/reusable/supercell → materials_category_components/entities/auxiliary/two_dimensional}/supercell_matrix_2d.json +0 -0
  179. /package/dist/js/example/{material/reusable/slab → materials_category_components/entities/auxiliary/two_dimensional}/termination.json +0 -0
@@ -1,13 +1,19 @@
1
1
  {
2
- "$id": "materials-category/single-material/two-dimensional/slab/configuration",
2
+ "$id": "materials-category-components/entities/reusable/two-dimensional/crystal-lattice-planes",
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
- "title": "Slab Configuration Schema",
5
- "description": "Configuration for creating a slab from a bulk material",
4
+ "title": "Crystal Lattice Planes Schema",
5
+ "description": "A set of all possible planes in a crystal defined by Miller indices",
6
6
  "type": "object",
7
+ "required": [
8
+ "crystal",
9
+ "miller_indices",
10
+ "use_conventional_cell"
11
+ ],
7
12
  "properties": {
8
- "bulk": {
13
+ "crystal": {
9
14
  "$schema": "http://json-schema.org/draft-07/schema#",
10
- "title": "material schema",
15
+ "title": "Crystal Schema",
16
+ "description": "A crystal structure, referencing the base material schema",
11
17
  "type": "object",
12
18
  "required": [
13
19
  "basis",
@@ -763,71 +769,22 @@
763
769
  "miller_indices": {
764
770
  "$schema": "http://json-schema.org/draft-07/schema#",
765
771
  "title": "Miller Indices Schema",
766
- "description": "Miller indices for crystallographic plane designation",
767
- "type": "array",
768
- "minItems": 3,
769
- "maxItems": 3,
772
+ "description": "Miller indices [h, k, l] defining crystallographic planes",
770
773
  "default": [
771
774
  0,
772
775
  0,
773
776
  1
774
777
  ],
775
- "items": {
776
- "type": "integer"
777
- }
778
- },
779
- "number_of_layers": {
780
- "$schema": "http://json-schema.org/draft-07/schema#",
781
- "title": "Number of Layers Schema",
782
- "description": "Number of atomic layers in a structural component",
783
- "type": "integer",
784
- "minimum": 1,
785
- "default": 1
786
- },
787
- "vacuum": {
788
- "$schema": "http://json-schema.org/draft-07/schema#",
789
- "title": "Vacuum Thickness Schema",
790
- "description": "Vacuum thickness in Angstroms",
791
- "type": "number",
792
- "minimum": 0,
793
- "default": 5
794
- },
795
- "xy_supercell_matrix": {
796
- "$schema": "http://json-schema.org/draft-07/schema#",
797
- "title": "Supercell Matrix 2D Schema",
798
- "description": "Supercell matrix for xy plane transformations",
799
778
  "type": "array",
800
- "minItems": 2,
801
- "maxItems": 2,
802
- "default": [
803
- [
804
- 1,
805
- 0
806
- ],
807
- [
808
- 0,
809
- 1
810
- ]
811
- ],
779
+ "minItems": 3,
780
+ "maxItems": 3,
812
781
  "items": {
813
- "type": "array",
814
- "minItems": 2,
815
- "maxItems": 2,
816
- "items": {
817
- "type": "integer"
818
- }
782
+ "type": "integer"
819
783
  }
820
784
  },
821
785
  "use_conventional_cell": {
822
- "title": "Use Conventional Cell",
823
- "description": "Whether to use conventional cell when generating the slab.",
824
- "type": "boolean",
825
- "default": true
826
- },
827
- "use_orthogonal_z": {
828
- "title": "Use Orthogonal Z",
829
- "description": "Whether to make vector c orthogonal to ab plane for the slab cell.",
830
786
  "type": "boolean",
787
+ "description": "Use the conventional cell for the crystal structure",
831
788
  "default": true
832
789
  }
833
790
  }
@@ -1,44 +1,192 @@
1
1
  {
2
- "$id": "material/reusable/stack/stack-of-slabs",
2
+ "$id": "materials-category-components/entities/reusable/two-dimensional/slab-unit-cell",
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
- "title": "Stack of Slabs Configuration Schema",
5
- "description": "Configuration for a stack of multiple slabs.",
4
+ "title": "Slab Unit Cell Schema",
5
+ "description": "A slab unit cell consisting of repeated unique atomic layers and vacuum",
6
+ "type": "object",
6
7
  "required": [
7
- "stack_slab_configurations"
8
+ "stack_components",
9
+ "direction"
8
10
  ],
9
11
  "properties": {
10
- "stack_slab_configurations": {
12
+ "stack_components": {
11
13
  "type": "array",
12
- "description": "List of slab configurations for the slabs in the stack",
13
14
  "minItems": 2,
15
+ "description": "Components of the slab unit cell: repeated unique atomic layers and vacuum",
14
16
  "items": {
15
- "$schema": "http://json-schema.org/draft-07/schema#",
16
- "title": "Slab in Stack Configuration Schema",
17
- "description": "Configuration for a slab in a stack with termination",
18
- "required": [
19
- "slab_configuration",
20
- "termination"
21
- ],
22
- "type": "object",
23
- "properties": {
24
- "stack_component": {
25
- "type": "string",
26
- "description": "Component of the stack (e.g., slab1, slab2)"
27
- },
28
- "distance_to_next_slab": {
29
- "type": "number",
30
- "description": "Distance to the next slab in the stack, in Angstroms",
31
- "default": 3
32
- },
33
- "slab_configuration": {
17
+ "oneOf": [
18
+ {
34
19
  "$schema": "http://json-schema.org/draft-07/schema#",
35
- "title": "Slab Configuration Schema",
36
- "description": "Configuration for creating a slab from a bulk material",
20
+ "title": "Atomic Layers Unique Repeated Schema",
21
+ "description": "Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination",
37
22
  "type": "object",
23
+ "required": [
24
+ "crystal",
25
+ "miller_indices",
26
+ "number_of_repetitions",
27
+ "termination_top",
28
+ "use_conventional_cell"
29
+ ],
38
30
  "properties": {
39
- "bulk": {
31
+ "termination_top": {
32
+ "$schema": "http://json-schema.org/draft-07/schema#",
33
+ "title": "Termination Schema",
34
+ "description": "Defines a specific termination of a slab",
35
+ "type": "object",
36
+ "required": [
37
+ "chemical_elements",
38
+ "space_group_symmetry_label"
39
+ ],
40
+ "properties": {
41
+ "chemical_elements": {
42
+ "title": "Chemical Elements",
43
+ "description": "Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')",
44
+ "type": "string",
45
+ "anyOf": [
46
+ {
47
+ "enum": [
48
+ "H",
49
+ "He",
50
+ "Li",
51
+ "Be",
52
+ "B",
53
+ "C",
54
+ "N",
55
+ "O",
56
+ "F",
57
+ "Ne",
58
+ "Na",
59
+ "Mg",
60
+ "Al",
61
+ "Si",
62
+ "P",
63
+ "S",
64
+ "Cl",
65
+ "Ar",
66
+ "K",
67
+ "Ca",
68
+ "Sc",
69
+ "Ti",
70
+ "V",
71
+ "Cr",
72
+ "Mn",
73
+ "Fe",
74
+ "Co",
75
+ "Ni",
76
+ "Cu",
77
+ "Zn",
78
+ "Ga",
79
+ "Ge",
80
+ "As",
81
+ "Se",
82
+ "Br",
83
+ "Kr",
84
+ "Rb",
85
+ "Sr",
86
+ "Y",
87
+ "Zr",
88
+ "Nb",
89
+ "Mo",
90
+ "Tc",
91
+ "Ru",
92
+ "Rh",
93
+ "Pd",
94
+ "Ag",
95
+ "Cd",
96
+ "In",
97
+ "Sn",
98
+ "Sb",
99
+ "Te",
100
+ "I",
101
+ "Xe",
102
+ "Cs",
103
+ "Ba",
104
+ "La",
105
+ "Ce",
106
+ "Pr",
107
+ "Nd",
108
+ "Pm",
109
+ "Sm",
110
+ "Eu",
111
+ "Gd",
112
+ "Tb",
113
+ "Dy",
114
+ "Ho",
115
+ "Er",
116
+ "Tm",
117
+ "Yb",
118
+ "Lu",
119
+ "Hf",
120
+ "Ta",
121
+ "W",
122
+ "Re",
123
+ "Os",
124
+ "Ir",
125
+ "Pt",
126
+ "Au",
127
+ "Hg",
128
+ "Tl",
129
+ "Pb",
130
+ "Bi",
131
+ "Po",
132
+ "At",
133
+ "Rn",
134
+ "Fr",
135
+ "Ra",
136
+ "Ac",
137
+ "Th",
138
+ "Pa",
139
+ "U",
140
+ "Np",
141
+ "Pu",
142
+ "Am",
143
+ "Cm",
144
+ "Bk",
145
+ "Cf",
146
+ "Es",
147
+ "Fm",
148
+ "Md",
149
+ "No",
150
+ "Lr",
151
+ "Rf",
152
+ "Db",
153
+ "Sg",
154
+ "Bh",
155
+ "Hs",
156
+ "Mt",
157
+ "Ds",
158
+ "Rg",
159
+ "Cn",
160
+ "Nh",
161
+ "Fl",
162
+ "Mc",
163
+ "Lv",
164
+ "Ts",
165
+ "Og"
166
+ ]
167
+ },
168
+ {
169
+ "type": "string",
170
+ "pattern": "^[A-Z][a-z]?([A-Z][a-z]?)*$"
171
+ }
172
+ ]
173
+ },
174
+ "space_group_symmetry_label": {
175
+ "title": "Space Group Symmetry Label",
176
+ "description": "Space group symmetry designation for the termination",
177
+ "type": "string"
178
+ }
179
+ }
180
+ },
181
+ "number_of_repetitions": {
182
+ "type": "integer",
183
+ "minimum": 1,
184
+ "description": "Number of repetitions of the unique atomic layers"
185
+ },
186
+ "crystal": {
40
187
  "$schema": "http://json-schema.org/draft-07/schema#",
41
- "title": "material schema",
188
+ "title": "Crystal Schema",
189
+ "description": "A crystal structure, referencing the base material schema",
42
190
  "type": "object",
43
191
  "required": [
44
192
  "basis",
@@ -794,234 +942,63 @@
794
942
  "miller_indices": {
795
943
  "$schema": "http://json-schema.org/draft-07/schema#",
796
944
  "title": "Miller Indices Schema",
797
- "description": "Miller indices for crystallographic plane designation",
798
- "type": "array",
799
- "minItems": 3,
800
- "maxItems": 3,
945
+ "description": "Miller indices [h, k, l] defining crystallographic planes",
801
946
  "default": [
802
947
  0,
803
948
  0,
804
949
  1
805
950
  ],
806
- "items": {
807
- "type": "integer"
808
- }
809
- },
810
- "number_of_layers": {
811
- "$schema": "http://json-schema.org/draft-07/schema#",
812
- "title": "Number of Layers Schema",
813
- "description": "Number of atomic layers in a structural component",
814
- "type": "integer",
815
- "minimum": 1,
816
- "default": 1
817
- },
818
- "vacuum": {
819
- "$schema": "http://json-schema.org/draft-07/schema#",
820
- "title": "Vacuum Thickness Schema",
821
- "description": "Vacuum thickness in Angstroms",
822
- "type": "number",
823
- "minimum": 0,
824
- "default": 5
825
- },
826
- "xy_supercell_matrix": {
827
- "$schema": "http://json-schema.org/draft-07/schema#",
828
- "title": "Supercell Matrix 2D Schema",
829
- "description": "Supercell matrix for xy plane transformations",
830
951
  "type": "array",
831
- "minItems": 2,
832
- "maxItems": 2,
833
- "default": [
834
- [
835
- 1,
836
- 0
837
- ],
838
- [
839
- 0,
840
- 1
841
- ]
842
- ],
952
+ "minItems": 3,
953
+ "maxItems": 3,
843
954
  "items": {
844
- "type": "array",
845
- "minItems": 2,
846
- "maxItems": 2,
847
- "items": {
848
- "type": "integer"
849
- }
955
+ "type": "integer"
850
956
  }
851
957
  },
852
958
  "use_conventional_cell": {
853
- "title": "Use Conventional Cell",
854
- "description": "Whether to use conventional cell when generating the slab.",
855
- "type": "boolean",
856
- "default": true
857
- },
858
- "use_orthogonal_z": {
859
- "title": "Use Orthogonal Z",
860
- "description": "Whether to make vector c orthogonal to ab plane for the slab cell.",
861
959
  "type": "boolean",
960
+ "description": "Use the conventional cell for the crystal structure",
862
961
  "default": true
863
962
  }
864
963
  }
865
964
  },
866
- "termination": {
965
+ {
867
966
  "$schema": "http://json-schema.org/draft-07/schema#",
868
- "title": "Termination Schema",
869
- "description": "Defines a specific termination of a slab",
967
+ "title": "Vacuum Configuration Schema",
968
+ "description": "A vacuum slab that breaks periodicity in a specified direction",
870
969
  "type": "object",
871
- "required": [
872
- "chemical_elements",
873
- "space_group_symmetry_label"
874
- ],
875
970
  "properties": {
876
- "chemical_elements": {
877
- "title": "Chemical Elements",
878
- "description": "Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')",
971
+ "direction": {
972
+ "$schema": "http://json-schema.org/draft-07/schema#",
973
+ "title": "Axis Enum",
879
974
  "type": "string",
880
- "anyOf": [
881
- {
882
- "enum": [
883
- "H",
884
- "He",
885
- "Li",
886
- "Be",
887
- "B",
888
- "C",
889
- "N",
890
- "O",
891
- "F",
892
- "Ne",
893
- "Na",
894
- "Mg",
895
- "Al",
896
- "Si",
897
- "P",
898
- "S",
899
- "Cl",
900
- "Ar",
901
- "K",
902
- "Ca",
903
- "Sc",
904
- "Ti",
905
- "V",
906
- "Cr",
907
- "Mn",
908
- "Fe",
909
- "Co",
910
- "Ni",
911
- "Cu",
912
- "Zn",
913
- "Ga",
914
- "Ge",
915
- "As",
916
- "Se",
917
- "Br",
918
- "Kr",
919
- "Rb",
920
- "Sr",
921
- "Y",
922
- "Zr",
923
- "Nb",
924
- "Mo",
925
- "Tc",
926
- "Ru",
927
- "Rh",
928
- "Pd",
929
- "Ag",
930
- "Cd",
931
- "In",
932
- "Sn",
933
- "Sb",
934
- "Te",
935
- "I",
936
- "Xe",
937
- "Cs",
938
- "Ba",
939
- "La",
940
- "Ce",
941
- "Pr",
942
- "Nd",
943
- "Pm",
944
- "Sm",
945
- "Eu",
946
- "Gd",
947
- "Tb",
948
- "Dy",
949
- "Ho",
950
- "Er",
951
- "Tm",
952
- "Yb",
953
- "Lu",
954
- "Hf",
955
- "Ta",
956
- "W",
957
- "Re",
958
- "Os",
959
- "Ir",
960
- "Pt",
961
- "Au",
962
- "Hg",
963
- "Tl",
964
- "Pb",
965
- "Bi",
966
- "Po",
967
- "At",
968
- "Rn",
969
- "Fr",
970
- "Ra",
971
- "Ac",
972
- "Th",
973
- "Pa",
974
- "U",
975
- "Np",
976
- "Pu",
977
- "Am",
978
- "Cm",
979
- "Bk",
980
- "Cf",
981
- "Es",
982
- "Fm",
983
- "Md",
984
- "No",
985
- "Lr",
986
- "Rf",
987
- "Db",
988
- "Sg",
989
- "Bh",
990
- "Hs",
991
- "Mt",
992
- "Ds",
993
- "Rg",
994
- "Cn",
995
- "Nh",
996
- "Fl",
997
- "Mc",
998
- "Lv",
999
- "Ts",
1000
- "Og"
1001
- ]
1002
- },
1003
- {
1004
- "type": "string",
1005
- "pattern": "^[A-Z][a-z]?([A-Z][a-z]?)*$"
1006
- }
975
+ "description": "Enum for axis types",
976
+ "enum": [
977
+ "x",
978
+ "y",
979
+ "z"
1007
980
  ]
1008
981
  },
1009
- "space_group_symmetry_label": {
1010
- "title": "Space Group Symmetry Label",
1011
- "description": "Space group symmetry designation for the termination",
1012
- "type": "string"
982
+ "size": {
983
+ "type": "number",
984
+ "description": "Size of the vacuum slab in angstroms",
985
+ "minimum": 0,
986
+ "default": 10
1013
987
  }
1014
- }
988
+ },
989
+ "required": [
990
+ "direction",
991
+ "size"
992
+ ]
1015
993
  }
1016
- }
994
+ ]
1017
995
  }
1018
996
  },
1019
- "stacking_direction": {
1020
- "type": "string",
1021
- "description": "The axis along which the slabs are stacked",
1022
- "default": "z",
997
+ "direction": {
1023
998
  "$schema": "http://json-schema.org/draft-07/schema#",
1024
999
  "title": "Axis Enum",
1000
+ "type": "string",
1001
+ "description": "Enum for axis types",
1025
1002
  "enum": [
1026
1003
  "x",
1027
1004
  "y",