@mat3ra/esse 2025.7.1-0 → 2025.7.29-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 (143) hide show
  1. package/README.md +4 -4
  2. package/dist/js/example/core/abstract/vector_2d.json +4 -0
  3. package/dist/js/example/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.json +693 -0
  4. package/dist/js/example/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.json +566 -0
  5. package/dist/js/example/materials_category/defective_structures/two_dimensional/adatom/configuration.json +553 -0
  6. package/dist/js/example/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.json +693 -0
  7. package/dist/js/example/materials_category/defective_structures/two_dimensional/island/configuration.json +841 -0
  8. package/dist/js/example/materials_category/defective_structures/two_dimensional/terrace/configuration.json +846 -0
  9. package/dist/js/example/materials_category/defective_structures/zero_dimensional/point_defect/base_configuration.json +271 -0
  10. package/dist/js/example/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.json +271 -0
  11. package/dist/js/example/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.json +271 -0
  12. package/dist/js/example/materials_category/defective_structures/zero_dimensional/point_defect/vacancy.json +136 -0
  13. package/dist/js/example/materials_category/pristine_structures/two_dimensional/nanoribbon.json +419 -0
  14. package/dist/js/example/materials_category/pristine_structures/two_dimensional/nanotape.json +282 -0
  15. package/dist/js/example/materials_category/pristine_structures/two_dimensional/slab.json +1 -11
  16. package/dist/js/example/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.json +305 -0
  17. package/dist/js/example/materials_category/pristine_structures/two_dimensional/slab_strained_supercell_with_gap.json +306 -0
  18. package/dist/js/example/materials_category/processed_structures/two_dimensional/passivation/configuration.json +551 -0
  19. package/dist/js/example/materials_category_components/entities/auxiliary/one_dimensional/miller_indices_2d.json +4 -0
  20. package/dist/js/example/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.json +128 -0
  21. package/dist/js/example/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.json +138 -0
  22. package/dist/js/example/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.json +135 -0
  23. package/dist/js/example/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.json +145 -0
  24. package/dist/js/example/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.json +547 -0
  25. package/dist/js/example/materials_category_components/operations/core/combinations/merge.json +1 -1
  26. package/dist/js/example/materials_category_components/operations/core/modifications/perturb.json +131 -0
  27. package/dist/js/schema/core/abstract/vector_2d.json +11 -0
  28. package/dist/js/schema/core/primitive/array_of_2_numbers.json +11 -0
  29. package/dist/js/schema/job.json +14 -0
  30. package/dist/js/schema/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.json +11616 -0
  31. package/dist/js/schema/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.json +11622 -0
  32. package/dist/js/schema/materials_category/defective_structures/two_dimensional/adatom/configuration.json +3517 -0
  33. package/dist/js/schema/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.json +11616 -0
  34. package/dist/js/schema/materials_category/defective_structures/two_dimensional/island/configuration.json +5197 -0
  35. package/dist/js/schema/materials_category/defective_structures/two_dimensional/terrace/configuration.json +5214 -0
  36. package/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/base_configuration.json +787 -0
  37. package/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.json +1722 -0
  38. package/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.json +1722 -0
  39. 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
  40. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/nanoribbon.json +2734 -0
  41. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/nanotape.json +1917 -0
  42. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/slab.json +1595 -1622
  43. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.json +1810 -0
  44. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/slab_strained_supercell_with_gap.json +1815 -0
  45. 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
  46. package/dist/js/schema/materials_category_components/entities/auxiliary/one_dimensional/miller_indices_2d.json +12 -0
  47. package/dist/js/schema/materials_category_components/entities/auxiliary/two_dimensional/termination.json +1 -0
  48. package/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.json +757 -0
  49. package/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.json +936 -0
  50. package/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/void_region.json +821 -0
  51. package/dist/js/schema/materials_category_components/entities/core/zero_dimensional/vacancy.json +20 -0
  52. package/dist/js/schema/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.json +785 -0
  53. package/dist/js/schema/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.json +1100 -0
  54. package/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/crystal_lattice_base.json +773 -0
  55. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers.json +18 -18
  56. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique.json +18 -18
  57. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated.json +18 -18
  58. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.json +17 -18
  59. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.json +2585 -0
  60. package/dist/js/schema/materials_category_components/operations/core/combinations/enums.json +12 -0
  61. package/dist/js/schema/materials_category_components/operations/core/combinations/merge.json +12 -1627
  62. package/dist/js/schema/materials_category_components/operations/core/combinations/stack.json +3 -1551
  63. package/dist/js/schema/materials_category_components/operations/core/modifications/perturb.json +768 -0
  64. package/dist/js/schema/software/flavor.json +7 -0
  65. package/dist/js/schema/software_directory/ml/unit/execution/evaluate/cross_validate.json +7 -0
  66. package/dist/js/schema/software_directory/ml/unit/execution/initialize.json +7 -0
  67. package/dist/js/schema/software_directory/ml/unit/execution/score.json +7 -0
  68. package/dist/js/schema/software_directory/ml/unit/execution/train.json +7 -0
  69. package/dist/js/schema/software_directory/ml/unit/execution.json +28 -0
  70. package/dist/js/schema/software_directory/modeling/unit/execution.json +7 -0
  71. package/dist/js/schema/software_directory/scripting/unit/execution.json +7 -0
  72. package/dist/js/schema/workflow/subworkflow/unit.json +7 -0
  73. package/dist/js/schema/workflow/subworkflow.json +7 -0
  74. package/dist/js/schema/workflow/unit/execution.json +7 -0
  75. package/dist/js/schema/workflow/unit.json +7 -0
  76. package/dist/js/schema/workflow.json +14 -0
  77. package/dist/js/schemas.json +1 -1
  78. package/dist/js/types.d.ts +31925 -4987
  79. package/example/core/abstract/vector_2d.json +4 -0
  80. package/example/materials_category/compound_pristine_structures/two-dimensional/interface/configuration.json +18 -0
  81. package/example/materials_category/defective_structures/one-dimensional/grain_boundary_linear/configuration.json +16 -0
  82. package/example/materials_category/defective_structures/two-dimensional/adatom/configuration.json +24 -0
  83. package/example/materials_category/defective_structures/two-dimensional/grain_boundary_planar/configuration.json +18 -0
  84. package/example/materials_category/defective_structures/two-dimensional/island/configuration.json +37 -0
  85. package/example/materials_category/defective_structures/two-dimensional/terrace/configuration.json +42 -0
  86. package/example/materials_category/defective_structures/zero-dimensional/point_defect/base_configuration.json +19 -0
  87. package/example/materials_category/defective_structures/zero-dimensional/point_defect/interstitial.json +21 -0
  88. package/example/materials_category/defective_structures/zero-dimensional/point_defect/substitutional.json +21 -0
  89. package/example/materials_category/defective_structures/zero-dimensional/point_defect/vacancy.json +11 -0
  90. package/example/materials_category/pristine_structures/two-dimensional/nanoribbon.json +42 -0
  91. package/example/materials_category/pristine_structures/two-dimensional/nanotape.json +30 -0
  92. package/example/materials_category/pristine_structures/two-dimensional/slab.json +1 -11
  93. package/example/materials_category/pristine_structures/two-dimensional/slab_strained_supercell.json +55 -0
  94. package/example/materials_category/pristine_structures/two-dimensional/slab_strained_supercell_with_gap.json +56 -0
  95. package/example/materials_category/processed_structures/two-dimensional/passivation/configuration.json +45 -0
  96. package/example/materials_category_components/entities/auxiliary/one-dimensional/miller_indices_2d.json +2 -0
  97. package/example/materials_category_components/entities/auxiliary/zero-dimensional/crystal_site.json +7 -2
  98. package/example/materials_category_components/entities/auxiliary/zero-dimensional/point_defect_site.json +11 -0
  99. package/example/materials_category_components/entities/reusable/one-dimensional/crystal_lattice_lines.json +8 -0
  100. package/example/materials_category_components/entities/reusable/one-dimensional/crystal_lattice_lines_unique_repeated.json +18 -0
  101. package/example/materials_category_components/entities/reusable/two-dimensional/slab_stack_configuration.json +22 -0
  102. package/example/materials_category_components/operations/core/combinations/merge.json +2 -2
  103. package/example/materials_category_components/operations/core/modifications/perturb.json +6 -0
  104. package/package.json +1 -1
  105. package/schema/core/abstract/vector_2d.json +10 -0
  106. package/schema/core/primitive/array_of_2_numbers.json +11 -0
  107. package/schema/materials_category/compound_pristine_structures/two-dimensional/interface/configuration.json +65 -0
  108. package/schema/materials_category/defective_structures/one-dimensional/grain_boundary_linear/configuration.json +34 -0
  109. package/schema/materials_category/defective_structures/two-dimensional/adatom/configuration.json +26 -0
  110. package/schema/materials_category/defective_structures/two-dimensional/grain_boundary_planar/configuration.json +16 -0
  111. package/schema/materials_category/defective_structures/two-dimensional/island/configuration.json +48 -0
  112. package/schema/materials_category/defective_structures/two-dimensional/terrace/configuration.json +55 -0
  113. package/schema/materials_category/defective_structures/zero-dimensional/point_defect/base_configuration.json +30 -0
  114. package/schema/materials_category/defective_structures/zero-dimensional/point_defect/interstitial.json +23 -0
  115. package/schema/materials_category/defective_structures/zero-dimensional/point_defect/substitutional.json +23 -0
  116. package/schema/materials_category/defective_structures/zero-dimensional/point_defect/vacancy.json +23 -0
  117. package/schema/materials_category/manifest.yaml +53 -156
  118. package/schema/materials_category/pristine_structures/two-dimensional/nanoribbon.json +29 -0
  119. package/schema/materials_category/pristine_structures/two-dimensional/nanotape.json +29 -0
  120. package/schema/materials_category/pristine_structures/two-dimensional/slab.json +18 -6
  121. package/schema/materials_category/pristine_structures/two-dimensional/slab_strained_supercell.json +25 -0
  122. package/schema/materials_category/pristine_structures/two-dimensional/slab_strained_supercell_with_gap.json +18 -0
  123. package/schema/materials_category/processed_structures/two-dimensional/passivation/configuration.json +45 -0
  124. package/schema/materials_category_components/entities/auxiliary/one-dimensional/miller_indices_2d.json +13 -0
  125. package/schema/materials_category_components/entities/auxiliary/two-dimensional/termination.json +1 -0
  126. package/schema/materials_category_components/entities/auxiliary/zero-dimensional/crystal_site.json +4 -0
  127. package/schema/materials_category_components/entities/auxiliary/zero-dimensional/point_defect_site.json +30 -0
  128. package/schema/materials_category_components/entities/auxiliary/zero-dimensional/void_region.json +18 -0
  129. package/schema/materials_category_components/entities/core/zero-dimensional/vacancy.json +20 -0
  130. package/schema/materials_category_components/entities/reusable/one-dimensional/crystal_lattice_lines.json +20 -0
  131. package/schema/materials_category_components/entities/reusable/one-dimensional/crystal_lattice_lines_unique_repeated.json +37 -0
  132. package/schema/materials_category_components/entities/reusable/three-dimensional/crystal_lattice_base.json +20 -0
  133. package/schema/materials_category_components/entities/reusable/two-dimensional/crystal_lattice_planes.json +6 -11
  134. package/schema/materials_category_components/entities/reusable/two-dimensional/slab_stack_configuration.json +32 -0
  135. package/schema/materials_category_components/operations/core/combinations/enums.json +12 -0
  136. package/schema/materials_category_components/operations/core/combinations/merge.json +9 -23
  137. package/schema/materials_category_components/operations/core/combinations/stack.json +3 -5
  138. package/schema/materials_category_components/operations/core/modifications/perturb.json +16 -0
  139. package/schema/software/flavor.json +7 -0
  140. package/dist/js/example/materials_category_components/operations/core/combinations/stack_component.json +0 -128
  141. package/example/materials_category_components/operations/core/combinations/stack_component.json +0 -3
  142. package/schema/materials_category_components/entities/reusable/two-dimensional/slab_unit_cell.json +0 -33
  143. package/schema/materials_category_components/operations/core/combinations/stack_component.json +0 -14
@@ -0,0 +1,65 @@
1
+ {
2
+ "$id": "materials-category/compound-pristine-structures/two-dimensional/interface/configuration",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Interface Configuration Schema",
5
+ "description": "A two-dimensional interface between two slabs, optionally including vacuum, with a specified stacking 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": 3,
16
+ "items": [
17
+ {
18
+ "anyOf": [
19
+ {
20
+ "$ref": "../../../pristine_structures/two-dimensional/slab.json"
21
+ },
22
+ {
23
+ "$ref": "../../../pristine_structures/two-dimensional/slab_strained_supercell.json"
24
+ },
25
+ {
26
+ "$ref": "../../../pristine_structures/two-dimensional/slab_strained_supercell_with_gap.json"
27
+ }
28
+ ]
29
+ },
30
+ {
31
+ "anyOf": [
32
+ {
33
+ "$ref": "../../../pristine_structures/two-dimensional/slab.json"
34
+ },
35
+ {
36
+ "$ref": "../../../pristine_structures/two-dimensional/slab_strained_supercell.json"
37
+ },
38
+ {
39
+ "$ref": "../../../pristine_structures/two-dimensional/slab_strained_supercell_with_gap.json"
40
+ }
41
+ ]
42
+ },
43
+ {
44
+ "$ref": "../../../../materials_category_components/entities/core/two-dimensional/vacuum.json"
45
+ }
46
+ ],
47
+ "description": "Components of the interface: slab, slab and vacuum"
48
+ },
49
+ "direction": {
50
+ "default": "z"
51
+ },
52
+ "xy_shift": {
53
+ "allOf": [
54
+ {
55
+ "$ref": "../../../../core/abstract/vector_2d.json"
56
+ }
57
+ ],
58
+ "default": [
59
+ 0.0,
60
+ 0.0
61
+ ],
62
+ "description": "xy shift for the film as cartesian 2D vector on the xy plane."
63
+ }
64
+ }
65
+ }
@@ -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
+ }
@@ -24,16 +24,8 @@ materials_category_components:
24
24
  # is applied along the specified direction, adds vacuum "slab", breaks periodicity in that direction, lowers dimensionality
25
25
  - direction
26
26
  - size
27
- termination:
28
- - stoichiometry
29
- - symmetry
30
- miller_indices: [ h, k, l ]
31
27
  one-dimensional:
32
28
  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
29
  atom:
38
30
  - chemical_element
39
31
  auxiliary: # auxiliary entities, not used in the main material creation
@@ -41,12 +33,20 @@ materials_category_components:
41
33
  supercell_matrix_3d:
42
34
  two-dimensional:
43
35
  miller_indices: [ h, k ] # 2D Miller indices
36
+ supercell_matrix_2d:
37
+ termination:
38
+ - stoichiometry
39
+ - symmetry
44
40
  one-dimensional:
45
- edge_direction: [ u, v ] # 2D Miller indices for 1D structures
41
+ miller_indices_2d: [ u, v ] # 2D Miller indices for 1D structures
46
42
  zero-dimensional:
47
- shape_function: f(x, y, z) # function that defines the shape of the object
43
+ crystal_site:
44
+ # created by reference to some crystal, can be populated with atom, vacancy, void, can be merged with a crystal of the same lattice
45
+ - crystal
46
+ - coordinate
48
47
  reusable:
49
48
  three-dimensional:
49
+ crystal_lattice_base:
50
50
  supercell:
51
51
  # created from a crystal, can be used to create a supercell of any size
52
52
  - crystal = material
@@ -54,7 +54,7 @@ materials_category_components:
54
54
  strained_uniform:
55
55
  - crystal = ref:/primitive/base/crystal
56
56
  - strain_percentage
57
- strained_non-uniform:
57
+ strained_non_uniform:
58
58
  - crystal = ref:/primitive/base/crystal
59
59
  - strain_matrix
60
60
 
@@ -63,6 +63,11 @@ materials_category_components:
63
63
  - crystal = material
64
64
  - miller_indices = ref:/primitive/two-dimensional/miller_indices
65
65
  - use_conventional_cell = bool # if true, the conventional cell is used to generate the planes
66
+ atomic_layers:
67
+ # Created from atomic_layers_unique in any order defined by terminations
68
+ - crystal = material
69
+ - miller_indices = ref:/primitive/two-dimensional/miller_indices
70
+ - terminations = [ termination, ... ] # any number of any terminations in the order for the layers to occur
66
71
  atomic_layers_unique:
67
72
  # Generated from the crystal_lattice_planes, together would form a full periodic structure
68
73
  - crystal = material
@@ -74,39 +79,19 @@ materials_category_components:
74
79
  - miller_indices = ref:/primitive/two-dimensional/miller_indices
75
80
  - termination_top = termination
76
81
  - 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
82
+ one-dimensional:
83
+ crystal_lattice_lines:
79
84
  - 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
85
+ - miller_indices = ref:/primitive/one-dimensional/miller_indices_2d
86
+ - use_conventional_cell = bool
87
+ crystal_lattice_lines_unique_repeated:
84
88
  - 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]
89
+ - miller_indices = ref:/primitive/one-dimensional/miller_indices_2d
90
+ - termination_top = termination
91
+ - number_of_repetitions = int
104
92
  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
93
+ repetitions:
94
+ # Generic repetition component for any dimensional structure
110
95
 
111
96
  operations:
112
97
  core:
@@ -116,14 +101,6 @@ materials_category_components:
116
101
  - matrix
117
102
  repeat:
118
103
  - 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
104
  combinations:
128
105
  stack_component: (material | vacuum)
129
106
  stack:
@@ -140,129 +117,49 @@ material_categories:
140
117
  ideal_crystal: ref:/primitive/base/crystal
141
118
 
142
119
  two-dimensional:
143
- monolayer:
144
- - stack_components = [ (atomic_layer | atomic_layers), vacuum ]
145
- - direction = "z"
146
120
  slab:
147
121
  - stack_components = [ atomic_layers, vacuum ]
148
122
  - direction = "z"
149
123
  - 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:
124
+ slab_strained_supercell:
125
+ - stack_components = [ atomic_layers, vacuum ]
126
+ - direction = "z"
127
+ - strain_matrix
128
+ slab_strained_supercell_with_gap:
129
+ - stack_components = [ atomic_layers, vacuum ]
130
+ - direction = (x | y | z){1}
131
+ - strain_matrix
132
+ - gap
157
133
  nanotape:
158
134
  # we created a supercell from monolayer, cut the shape and added vacuum on one side
159
- - stack_components = [ ribbon_section, vacuum ]
135
+ - stack_components = [ crystal_lattice_lines, vacuum ]
160
136
  - 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
137
  nanoribbon:
171
138
  # 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 ]
139
+ - stack_components = [ crystal_lattice_lines, vacuum ]
176
140
  - direction = (x | y | z){2} # 2 sides
177
141
 
178
142
  compound_pristine_structures:
179
143
  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 ]
144
+ interface:
145
+ configuration:
146
+ # Base interface configuration that can be inherited by specific interface types
147
+ - stack_components = [ (slab | slab_strained_supercell_with_gap), (slab | slab_strained_supercell_with_gap), vacuum? ]
196
148
  - 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
149
+ - xy_shift = [float, float] # xy shift for the interface
208
150
 
209
151
  defective_structures:
210
- three-dimensional:
211
- amorphous:
212
- - crystal = ref:/primitive/base/crystal
213
- - function = f(x, y, z) # annealing function
214
152
  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
153
  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
154
+ configuration:
155
+ # Configuration for creating a planar grain boundary
156
+ - stack_components = [ slab | slab_strained_supercell_with_gap, slab | slab_strained_supercell_with_gap ]
157
+ - direction = (x | y | z){1}
260
158
  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
159
+ grain_boundary_linear:
160
+ configuration:
161
+ # Configuration for creating a linear grain boundary
162
+ - stack_components = [ (slab | slab_strained_supercell_with_gap), (slab | slab_strained_supercell_with_gap) ]
163
+ - direction = (x | y){1}
164
+ - actual_angle = float # angle between the two phases
165
+ - xy_shift = [float, float] # xy shift for the grain boundary