@mat3ra/esse 2025.7.29-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 (29) hide show
  1. package/dist/js/example/materials_category_components/operations/core/combinations/stack.json +11 -1
  2. package/dist/js/schema/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.json +174 -3687
  3. package/dist/js/schema/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.json +174 -3687
  4. package/dist/js/schema/materials_category/defective_structures/two_dimensional/adatom/configuration.json +46 -0
  5. package/dist/js/schema/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.json +174 -3687
  6. package/dist/js/schema/materials_category/defective_structures/two_dimensional/island/configuration.json +69 -0
  7. package/dist/js/schema/materials_category/defective_structures/two_dimensional/terrace/configuration.json +69 -0
  8. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/nanoribbon.json +46 -0
  9. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/nanotape.json +23 -0
  10. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/slab.json +23 -0
  11. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.json +23 -0
  12. package/dist/js/schema/materials_category_components/entities/reusable/{repetitions.json → three_dimensional/repetitions.json} +1 -1
  13. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.json +46 -0
  14. package/dist/js/schema/materials_category_components/operations/core/combinations/stack.json +23 -0
  15. package/dist/js/schemas.json +1 -1
  16. package/dist/js/types.d.ts +6289 -12339
  17. package/example/materials_category_components/entities/reusable/three-dimensional/repetitions.json +3 -0
  18. package/example/materials_category_components/operations/core/combinations/stack.json +12 -2
  19. package/package.json +1 -1
  20. package/schema/materials_category/compound_pristine_structures/two-dimensional/interface/configuration.json +0 -6
  21. package/schema/materials_category/manifest.yaml +55 -133
  22. package/schema/materials_category_components/entities/reusable/{repetitions.json → three-dimensional/repetitions.json} +1 -1
  23. package/schema/materials_category_components/operations/core/combinations/stack.json +17 -0
  24. package/dist/js/example/materials_category/pristine_structures/two_dimensional/slab_strained_supercell_with_gap.json +0 -306
  25. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/slab_strained_supercell_with_gap.json +0 -1815
  26. package/example/materials_category/pristine_structures/two-dimensional/slab_strained_supercell_with_gap.json +0 -56
  27. package/example/materials_category_components/entities/reusable/repetitions.json +0 -1
  28. package/schema/materials_category/pristine_structures/two-dimensional/slab_strained_supercell_with_gap.json +0 -18
  29. /package/dist/js/example/materials_category_components/entities/reusable/{repetitions.json → three_dimensional/repetitions.json} +0 -0
@@ -7,5 +7,15 @@
7
7
  "...": "include(../../../entities/core/two-dimensional/vacuum.json)"
8
8
  }
9
9
  ],
10
- "direction": "z"
11
- }
10
+ "direction": "z",
11
+ "gaps": [
12
+ {
13
+ "id": 0,
14
+ "value": 2.5
15
+ },
16
+ {
17
+ "id": 1,
18
+ "value": 3.0
19
+ }
20
+ ]
21
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mat3ra/esse",
3
- "version": "2025.7.29-0",
3
+ "version": "2025.8.6-0",
4
4
  "description": "Mat3ra's Excellent Source of Schemas and Examples (ESSE) for Digital Materials R&D",
5
5
  "scripts": {
6
6
  "transpile": "tsc -p tsconfig-transpile.json",
@@ -21,9 +21,6 @@
21
21
  },
22
22
  {
23
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
24
  }
28
25
  ]
29
26
  },
@@ -34,9 +31,6 @@
34
31
  },
35
32
  {
36
33
  "$ref": "../../../pristine_structures/two-dimensional/slab_strained_supercell.json"
37
- },
38
- {
39
- "$ref": "../../../pristine_structures/two-dimensional/slab_strained_supercell_with_gap.json"
40
34
  }
41
35
  ]
42
36
  },
@@ -1,165 +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
10
+ - vacuum
27
11
  one-dimensional:
12
+ # empty directory
28
13
  zero-dimensional:
29
- atom:
30
- - chemical_element
31
- auxiliary: # auxiliary entities, not used in the main material creation
14
+ - atom
15
+ - vacancy
16
+ auxiliary:
32
17
  three-dimensional:
33
- supercell_matrix_3d:
18
+ - supercell_matrix_3d
34
19
  two-dimensional:
35
- miller_indices: [ h, k ] # 2D Miller indices
36
- supercell_matrix_2d:
37
- termination:
38
- - stoichiometry
39
- - symmetry
20
+ - miller_indices
21
+ - supercell_matrix_2d
22
+ - termination
40
23
  one-dimensional:
41
- miller_indices_2d: [ u, v ] # 2D Miller indices for 1D structures
24
+ - miller_indices_2d
42
25
  zero-dimensional:
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
26
+ - crystal_site
27
+ - point_defect_site
28
+ - void_region
47
29
  reusable:
48
30
  three-dimensional:
49
- crystal_lattice_base:
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:
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
71
- atomic_layers_unique:
72
- # Generated from the crystal_lattice_planes, together would form a full periodic structure
73
- - crystal = material
74
- - miller_indices = ref:/primitive/two-dimensional/miller_indices
75
- - terminations = [ termination, ... ] # all possible terminations for that orientation
76
- atomic_layers_unique_repeated:
77
- # atomic_layers_unique with an integer number of repetitions, form a full periodic structure with top layer specified by the termination
78
- - crystal = material
79
- - miller_indices = ref:/primitive/two-dimensional/miller_indices
80
- - termination_top = termination
81
- - number_of_repetitions = int # number of repetitions of the unique atomic layers, they are shifted according to the termination
37
+ - atomic_layers
38
+ - atomic_layers_unique
39
+ - atomic_layers_unique_repeated
40
+ - crystal_lattice_planes
41
+ - slab_stack_configuration
82
42
  one-dimensional:
83
- crystal_lattice_lines:
84
- - crystal = material
85
- - miller_indices = ref:/primitive/one-dimensional/miller_indices_2d
86
- - use_conventional_cell = bool
87
- crystal_lattice_lines_unique_repeated:
88
- - crystal = material
89
- - miller_indices = ref:/primitive/one-dimensional/miller_indices_2d
90
- - termination_top = termination
91
- - number_of_repetitions = int
92
- zero-dimensional:
93
- repetitions:
94
- # Generic repetition component for any dimensional structure
43
+ - crystal_lattice_lines
44
+ - crystal_lattice_lines_unique_repeated
95
45
 
96
46
  operations:
97
47
  core:
98
48
  modifications:
99
- strain:
100
- # can be applied to a crystal, modifies the lattice parameters and preserves basis in crystal coordinates
101
- - matrix
102
- repeat:
103
- - integer_matrix
49
+ - perturb
50
+ - repeat
51
+ - strain
104
52
  combinations:
105
- stack_component: (material | vacuum)
106
- stack:
107
- - stack_components = [ stack_component, ... ] # vacuum is added between to add a gap/distance between components
108
- - direction = ("x" | "y" | "z")|("-x" | "-y" | "-z"){1} # sign indicates the order of the stacking
109
- merge_component: ( material | vacuum | crystal_site )
110
- merge:
111
- - merge_structures = [ material ]
112
- - method = ("add" | "replace" | "yield" | "smart"){1}
53
+ - enums
54
+ - merge
55
+ - stack
113
56
 
114
- material_categories:
57
+ materials_category:
115
58
  pristine_structures:
116
59
  three-dimensional:
117
- ideal_crystal: ref:/primitive/base/crystal
118
-
60
+ - ideal_crystal
119
61
  two-dimensional:
120
- slab:
121
- - stack_components = [ atomic_layers, vacuum ]
122
- - direction = "z"
123
- - supercell_xy?
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
133
- nanotape:
134
- # we created a supercell from monolayer, cut the shape and added vacuum on one side
135
- - stack_components = [ crystal_lattice_lines, vacuum ]
136
- - direction = (x | y){1}
137
- nanoribbon:
138
- # we created a monolayer supercell, cut the shape and added vacuum on all sides
139
- - stack_components = [ crystal_lattice_lines, vacuum ]
140
- - direction = (x | y | z){2} # 2 sides
62
+ - nanoribbon
63
+ - nanotape
64
+ - slab
65
+ - slab_strained_supercell
141
66
 
142
67
  compound_pristine_structures:
143
68
  two-dimensional:
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? ]
148
- - direction = "z"
149
- - xy_shift = [float, float] # xy shift for the interface
69
+ - interface
150
70
 
151
71
  defective_structures:
152
72
  two-dimensional:
153
- grain_boundary_planar:
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}
73
+ - adatom
74
+ - grain_boundary_planar
75
+ - island
76
+ - terrace
158
77
  one-dimensional:
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
78
+ - grain_boundary_linear
79
+ zero-dimensional:
80
+ point_defect:
81
+ - interstitial
82
+ - substitutional
83
+ - vacancy
84
+
85
+ processed_structures:
86
+ two-dimensional:
87
+ - passivation
@@ -1,5 +1,5 @@
1
1
  {
2
- "$id": "materials-category-components/entities/reusable/repetitions",
2
+ "$id": "materials-category-components/entities/reusable/three-dimensional/repetitions",
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
4
  "title": "Crystal Repetitions Schema",
5
5
  "description": "Number of unit cells to repeat in each direction for a crystal structure.",
@@ -10,6 +10,23 @@
10
10
  },
11
11
  "direction": {
12
12
  "$ref": "../../../../core/primitive/axis_3d_names_enum.json"
13
+ },
14
+ "gaps": {
15
+ "description": "Gap distances between stack components as an array of objects with id and value",
16
+ "type": "array",
17
+ "items": {
18
+ "allOf": [
19
+ {
20
+ "$ref": "../../../../core/primitive/object_with_id.json"
21
+ }
22
+ ],
23
+ "properties": {
24
+ "value": {
25
+ "type": "number",
26
+ "minimum": 0
27
+ }
28
+ }
29
+ }
13
30
  }
14
31
  },
15
32
  "required": [
@@ -1,306 +0,0 @@
1
- {
2
- "stack_components": [
3
- {
4
- "crystal": {
5
- "_id": "LCthJ6E2QabYCZqf3",
6
- "basis": {
7
- "coordinates": [
8
- {
9
- "id": 1,
10
- "value": [
11
- 0,
12
- 0,
13
- 0
14
- ]
15
- },
16
- {
17
- "id": 2,
18
- "value": [
19
- 0.25,
20
- 0.25,
21
- 0.25
22
- ]
23
- }
24
- ],
25
- "elements": [
26
- {
27
- "id": 1,
28
- "value": "Si"
29
- },
30
- {
31
- "id": 2,
32
- "value": "Si"
33
- }
34
- ],
35
- "name": "basis",
36
- "units": "crystal"
37
- },
38
- "createdAt": "2016-04-03T05:25:37.430Z",
39
- "creator": {
40
- "_id": "HtxACY2wX4b2hS8Rv",
41
- "cls": "User",
42
- "slug": "exadmin"
43
- },
44
- "derivedProperties": [
45
- {
46
- "name": "volume",
47
- "units": "angstrom^3",
48
- "value": 131.1
49
- },
50
- {
51
- "name": "density",
52
- "units": "g/cm^3",
53
- "value": 2.33
54
- },
55
- {
56
- "name": "symmetry",
57
- "spaceGroupSymbol": "Fd-3m",
58
- "tolerance": {
59
- "units": "angstrom",
60
- "value": 0.3
61
- }
62
- },
63
- {
64
- "degree": 10,
65
- "name": "p-norm",
66
- "value": 0.71
67
- },
68
- {
69
- "element": "Si",
70
- "name": "elemental_ratio",
71
- "value": 0.71
72
- },
73
- {
74
- "name": "inchi",
75
- "value": ""
76
- },
77
- {
78
- "name": "inchi_key",
79
- "value": ""
80
- }
81
- ],
82
- "exabyteId": "RKiswuxHKkF3uvLyA",
83
- "formula": "Si",
84
- "hash": "4ac3fa057e3530628eb1295c77110eaa",
85
- "isDefault": false,
86
- "isNonPeriodic": false,
87
- "lattice": {
88
- "name": "lattice",
89
- "a": 5.14,
90
- "alpha": 90,
91
- "b": 5.14,
92
- "beta": 90,
93
- "c": 5.14,
94
- "gamma": 90,
95
- "type": "CUB",
96
- "units": {
97
- "angle": "degree",
98
- "length": "angstrom"
99
- },
100
- "vectors": {
101
- "a": [
102
- 5,
103
- 0.000121312,
104
- 0.000131415
105
- ],
106
- "alat": 1,
107
- "b": [
108
- 0.000121312,
109
- 5,
110
- 0.000121314
111
- ],
112
- "c": [
113
- 0.000121313,
114
- 0.000121312,
115
- 5
116
- ],
117
- "units": "angstrom"
118
- }
119
- },
120
- "name": "Silicon FCC",
121
- "owner": {
122
- "_id": "HtxACY2wX4b2hS8Rv",
123
- "cls": "Account",
124
- "slug": "exabyte"
125
- },
126
- "scaledHash": "5bd4eb168e3530628eb1295d88221cbb",
127
- "schemaVersion": "0.2.0",
128
- "slug": "silicon-fcc",
129
- "unitCellFormula": "Si2",
130
- "updatedAt": "2016-04-04T17:58:42.867Z"
131
- },
132
- "miller_indices": [
133
- 0,
134
- 0,
135
- 1
136
- ],
137
- "use_conventional_cell": true,
138
- "termination_top": {
139
- "chemical_elements": "Si",
140
- "space_group_symmetry_label": "P4/mmm_2"
141
- },
142
- "number_of_repetitions": 5
143
- },
144
- {
145
- "direction": "z",
146
- "size": 10,
147
- "crystal": {
148
- "_id": "LCthJ6E2QabYCZqf3",
149
- "basis": {
150
- "coordinates": [
151
- {
152
- "id": 1,
153
- "value": [
154
- 0,
155
- 0,
156
- 0
157
- ]
158
- },
159
- {
160
- "id": 2,
161
- "value": [
162
- 0.25,
163
- 0.25,
164
- 0.25
165
- ]
166
- }
167
- ],
168
- "elements": [
169
- {
170
- "id": 1,
171
- "value": "Si"
172
- },
173
- {
174
- "id": 2,
175
- "value": "Si"
176
- }
177
- ],
178
- "name": "basis",
179
- "units": "crystal"
180
- },
181
- "createdAt": "2016-04-03T05:25:37.430Z",
182
- "creator": {
183
- "_id": "HtxACY2wX4b2hS8Rv",
184
- "cls": "User",
185
- "slug": "exadmin"
186
- },
187
- "derivedProperties": [
188
- {
189
- "name": "volume",
190
- "units": "angstrom^3",
191
- "value": 131.1
192
- },
193
- {
194
- "name": "density",
195
- "units": "g/cm^3",
196
- "value": 2.33
197
- },
198
- {
199
- "name": "symmetry",
200
- "spaceGroupSymbol": "Fd-3m",
201
- "tolerance": {
202
- "units": "angstrom",
203
- "value": 0.3
204
- }
205
- },
206
- {
207
- "degree": 10,
208
- "name": "p-norm",
209
- "value": 0.71
210
- },
211
- {
212
- "element": "Si",
213
- "name": "elemental_ratio",
214
- "value": 0.71
215
- },
216
- {
217
- "name": "inchi",
218
- "value": ""
219
- },
220
- {
221
- "name": "inchi_key",
222
- "value": ""
223
- }
224
- ],
225
- "exabyteId": "RKiswuxHKkF3uvLyA",
226
- "formula": "Si",
227
- "hash": "4ac3fa057e3530628eb1295c77110eaa",
228
- "isDefault": false,
229
- "isNonPeriodic": false,
230
- "lattice": {
231
- "name": "lattice",
232
- "a": 5.14,
233
- "alpha": 90,
234
- "b": 5.14,
235
- "beta": 90,
236
- "c": 5.14,
237
- "gamma": 90,
238
- "type": "CUB",
239
- "units": {
240
- "angle": "degree",
241
- "length": "angstrom"
242
- },
243
- "vectors": {
244
- "a": [
245
- 5,
246
- 0.000121312,
247
- 0.000131415
248
- ],
249
- "alat": 1,
250
- "b": [
251
- 0.000121312,
252
- 5,
253
- 0.000121314
254
- ],
255
- "c": [
256
- 0.000121313,
257
- 0.000121312,
258
- 5
259
- ],
260
- "units": "angstrom"
261
- }
262
- },
263
- "name": "Silicon FCC",
264
- "owner": {
265
- "_id": "HtxACY2wX4b2hS8Rv",
266
- "cls": "Account",
267
- "slug": "exabyte"
268
- },
269
- "scaledHash": "5bd4eb168e3530628eb1295d88221cbb",
270
- "schemaVersion": "0.2.0",
271
- "slug": "silicon-fcc",
272
- "unitCellFormula": "Si2",
273
- "updatedAt": "2016-04-04T17:58:42.867Z"
274
- }
275
- }
276
- ],
277
- "direction": "z",
278
- "xy_supercell_matrix": [
279
- [
280
- 2,
281
- 0
282
- ],
283
- [
284
- 0,
285
- 2
286
- ]
287
- ],
288
- "strain_matrix": [
289
- [
290
- 1.02,
291
- 0,
292
- 0
293
- ],
294
- [
295
- 0,
296
- 1.02,
297
- 0
298
- ],
299
- [
300
- 0,
301
- 0,
302
- 1
303
- ]
304
- ],
305
- "gap": 2.5
306
- }