@mat3ra/esse 2025.4.26-0 → 2025.5.16-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +3 -9
- package/.prettierrc +2 -1
- package/dist/js/esse/JSONSchemasGenerator.js +10 -2
- package/dist/js/esse/utils.js +6 -0
- package/dist/js/example/apse/materials/builders/slab/pymatgen/parameters.json +6 -0
- package/dist/js/example/material/builders/base/selector_parameters.json +3 -0
- package/dist/js/example/material/builders/single_material/two_dimensional/slab/selector_parameters.json +6 -0
- package/dist/js/example/material/reusable/repetitions.json +5 -0
- package/dist/js/example/material/reusable/slab/miller_indices.json +5 -0
- package/dist/js/example/material/reusable/slab/number_of_layers.json +1 -0
- package/dist/js/example/material/reusable/slab/termination.json +4 -0
- package/dist/js/example/material/reusable/slab/vacuum.json +1 -0
- package/dist/js/example/material/reusable/supercell_matrix_2d.json +10 -0
- package/dist/js/example/material/reusable/supercell_matrix_3d.json +17 -0
- package/dist/js/example/materials_category/single_material/two_dimensional/slab/configuration.json +150 -0
- package/dist/js/schema/apse/materials/builders/slab/pymatgen/parameters.json +33 -0
- package/dist/js/schema/core/abstract/coordinate_2d.json +11 -0
- package/dist/js/schema/material/builders/base/selector_parameters.json +15 -0
- package/dist/js/schema/material/builders/single_material/two_dimensional/slab/builder_parameters.json +33 -0
- package/dist/js/schema/material/builders/single_material/two_dimensional/slab/selector_parameters.json +31 -0
- package/dist/js/schema/material/reusable/repetitions.json +18 -0
- package/dist/js/schema/material/reusable/slab/enums.json +11 -0
- package/dist/js/schema/material/reusable/slab/miller_indices.json +17 -0
- package/dist/js/schema/material/reusable/slab/number_of_layers.json +9 -0
- package/dist/js/schema/material/reusable/slab/termination.json +23 -0
- package/dist/js/schema/material/reusable/slab/vacuum.json +9 -0
- package/dist/js/schema/material/reusable/supercell_matrix_2d.json +27 -0
- package/dist/js/schema/material/reusable/supercell_matrix_3d.json +34 -0
- package/dist/js/schema/materials_category/single_material/two_dimensional/slab/configuration.json +709 -0
- package/dist/js/schemas.json +1 -1
- package/dist/js/types.d.ts +433 -0
- package/example/apse/materials/builders/slab/pymatgen/parameters.json +6 -0
- package/example/material/builders/base/selector_parameters.json +3 -0
- package/example/material/builders/single_material/two_dimensional/slab/selector_parameters.json +6 -0
- package/example/material/reusable/repetitions.json +1 -0
- package/example/material/reusable/slab/miller_indices.json +5 -0
- package/example/material/reusable/slab/number_of_layers.json +1 -0
- package/example/material/reusable/slab/termination.json +4 -0
- package/example/material/reusable/slab/vacuum.json +1 -0
- package/example/material/reusable/supercell_matrix_2d.json +10 -0
- package/example/material/reusable/supercell_matrix_3d.json +5 -0
- package/example/materials_category/single_material/two_dimensional/slab/configuration.json +25 -0
- package/package.json +10 -4
- package/schema/apse/materials/builders/slab/pymatgen/parameters.json +33 -0
- package/schema/core/abstract/coordinate_2d.json +11 -0
- package/schema/material/builders/base/selector_parameters.json +15 -0
- package/schema/material/builders/single_material/two_dimensional/slab/builder_parameters.json +12 -0
- package/schema/material/builders/single_material/two_dimensional/slab/selector_parameters.json +12 -0
- package/schema/material/reusable/repetitions.json +18 -0
- package/schema/material/reusable/slab/enums.json +11 -0
- package/schema/material/reusable/slab/miller_indices.json +17 -0
- package/schema/material/reusable/slab/number_of_layers.json +9 -0
- package/schema/material/reusable/slab/termination.json +23 -0
- package/schema/material/reusable/slab/vacuum.json +9 -0
- package/schema/material/reusable/supercell_matrix_2d.json +27 -0
- package/schema/material/reusable/supercell_matrix_3d.json +34 -0
- package/schema/materials_category/single_material/two_dimensional/slab/configuration.json +42 -0
- package/src/js/esse/JSONSchemasGenerator.ts +11 -1
- package/src/js/esse/utils.ts +8 -2
package/dist/js/types.d.ts
CHANGED
|
@@ -1545,6 +1545,28 @@ export interface PwxMainSchema {
|
|
|
1545
1545
|
})[];
|
|
1546
1546
|
};
|
|
1547
1547
|
}
|
|
1548
|
+
/** Schema dist/js/schema/apse/materials/builders/slab/pymatgen/parameters.json */
|
|
1549
|
+
/**
|
|
1550
|
+
* Parameters for the Pymatgen slab generator. https://github.com/materialsproject/pymatgen/blob/585bb673c4aa222669c4b0d72ffeec3dbf092630/pymatgen/core/surface.py#L1187
|
|
1551
|
+
*/
|
|
1552
|
+
export interface PymatgenSlabGeneratorParametersSchema {
|
|
1553
|
+
/**
|
|
1554
|
+
* Minimum size of the vacuum in layers or angstroms
|
|
1555
|
+
*/
|
|
1556
|
+
min_vacuum_size?: number;
|
|
1557
|
+
/**
|
|
1558
|
+
* Whether to cleave in unit planes
|
|
1559
|
+
*/
|
|
1560
|
+
in_unit_planes?: boolean;
|
|
1561
|
+
/**
|
|
1562
|
+
* Whether to reorient the lattice
|
|
1563
|
+
*/
|
|
1564
|
+
reorient_lattice?: boolean;
|
|
1565
|
+
/**
|
|
1566
|
+
* Whether to symmetrize the slab
|
|
1567
|
+
*/
|
|
1568
|
+
symmetrize?: boolean;
|
|
1569
|
+
}
|
|
1548
1570
|
/** Schema dist/js/schema/core/abstract/2d_data.json */
|
|
1549
1571
|
export interface DimensionDataSchema {
|
|
1550
1572
|
/**
|
|
@@ -1600,6 +1622,12 @@ export interface DimensionalGridSchema {
|
|
|
1600
1622
|
*/
|
|
1601
1623
|
shifts: [number, number, number];
|
|
1602
1624
|
}
|
|
1625
|
+
/** Schema dist/js/schema/core/abstract/coordinate_2d.json */
|
|
1626
|
+
/**
|
|
1627
|
+
* @minItems 2
|
|
1628
|
+
* @maxItems 2
|
|
1629
|
+
*/
|
|
1630
|
+
export type Coordinate2DSchema = [number, number];
|
|
1603
1631
|
/** Schema dist/js/schema/core/abstract/coordinate_3d.json */
|
|
1604
1632
|
/**
|
|
1605
1633
|
* @minItems 3
|
|
@@ -6125,6 +6153,57 @@ export interface JobSchema {
|
|
|
6125
6153
|
isDefault?: boolean;
|
|
6126
6154
|
metadata?: {};
|
|
6127
6155
|
}
|
|
6156
|
+
/** Schema dist/js/schema/material/builders/base/selector_parameters.json */
|
|
6157
|
+
/**
|
|
6158
|
+
* Base parameters for all builder selectors
|
|
6159
|
+
*/
|
|
6160
|
+
export interface BaseSelectorParametersSchema {
|
|
6161
|
+
/**
|
|
6162
|
+
* Default index for the selector
|
|
6163
|
+
*/
|
|
6164
|
+
default_index?: number;
|
|
6165
|
+
}
|
|
6166
|
+
/** Schema dist/js/schema/material/builders/single_material/two_dimensional/slab/builder_parameters.json */
|
|
6167
|
+
/**
|
|
6168
|
+
* Parameters for the slab builder
|
|
6169
|
+
*/
|
|
6170
|
+
export interface SlabBuilderParametersSchema {
|
|
6171
|
+
/**
|
|
6172
|
+
* Minimum size of the vacuum in layers or angstroms
|
|
6173
|
+
*/
|
|
6174
|
+
min_vacuum_size?: number;
|
|
6175
|
+
/**
|
|
6176
|
+
* Whether to cleave in unit planes
|
|
6177
|
+
*/
|
|
6178
|
+
in_unit_planes?: boolean;
|
|
6179
|
+
/**
|
|
6180
|
+
* Whether to reorient the lattice
|
|
6181
|
+
*/
|
|
6182
|
+
reorient_lattice?: boolean;
|
|
6183
|
+
/**
|
|
6184
|
+
* Whether to symmetrize the slab
|
|
6185
|
+
*/
|
|
6186
|
+
symmetrize?: boolean;
|
|
6187
|
+
}
|
|
6188
|
+
/** Schema dist/js/schema/material/builders/single_material/two_dimensional/slab/selector_parameters.json */
|
|
6189
|
+
/**
|
|
6190
|
+
* Parameters for slab selection
|
|
6191
|
+
*/
|
|
6192
|
+
export interface SlabSelectorParametersSchema {
|
|
6193
|
+
/**
|
|
6194
|
+
* Defines a specific termination of a slab
|
|
6195
|
+
*/
|
|
6196
|
+
termination?: {
|
|
6197
|
+
/**
|
|
6198
|
+
* Chemical elements at the termination
|
|
6199
|
+
*/
|
|
6200
|
+
chemical_elements: string;
|
|
6201
|
+
/**
|
|
6202
|
+
* Space group symmetry designation for the termination
|
|
6203
|
+
*/
|
|
6204
|
+
space_group_symmetry_label: string;
|
|
6205
|
+
};
|
|
6206
|
+
}
|
|
6128
6207
|
/** Schema dist/js/schema/material/consistency_check.json */
|
|
6129
6208
|
/**
|
|
6130
6209
|
* The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.
|
|
@@ -6151,6 +6230,64 @@ export interface MaterialConsistencyCheckSchema {
|
|
|
6151
6230
|
export interface MaterialConventionalSchema {
|
|
6152
6231
|
conventional?: {};
|
|
6153
6232
|
}
|
|
6233
|
+
/** Schema dist/js/schema/material/reusable/repetitions.json */
|
|
6234
|
+
/**
|
|
6235
|
+
* Number of unit cells to repeat in each direction for a crystal structure.
|
|
6236
|
+
*
|
|
6237
|
+
* @minItems 3
|
|
6238
|
+
* @maxItems 3
|
|
6239
|
+
*/
|
|
6240
|
+
export type CrystalRepetitionsSchema = [number, number, number];
|
|
6241
|
+
/** Schema dist/js/schema/material/reusable/slab/enums.json */
|
|
6242
|
+
export type SurfaceTypesEnum = "top" | "bottom" | "both";
|
|
6243
|
+
/** Schema dist/js/schema/material/reusable/slab/miller_indices.json */
|
|
6244
|
+
/**
|
|
6245
|
+
* Miller indices for crystallographic plane designation
|
|
6246
|
+
*
|
|
6247
|
+
* @minItems 3
|
|
6248
|
+
* @maxItems 3
|
|
6249
|
+
*/
|
|
6250
|
+
export type MillerIndicesSchema = [number, number, number];
|
|
6251
|
+
/** Schema dist/js/schema/material/reusable/slab/number_of_layers.json */
|
|
6252
|
+
/**
|
|
6253
|
+
* Number of atomic layers in a structural component
|
|
6254
|
+
*/
|
|
6255
|
+
export type NumberOfLayersSchema = number;
|
|
6256
|
+
/** Schema dist/js/schema/material/reusable/slab/termination.json */
|
|
6257
|
+
/**
|
|
6258
|
+
* Defines a specific termination of a slab
|
|
6259
|
+
*/
|
|
6260
|
+
export interface TerminationSchema {
|
|
6261
|
+
/**
|
|
6262
|
+
* Chemical elements at the termination
|
|
6263
|
+
*/
|
|
6264
|
+
chemical_elements: string;
|
|
6265
|
+
/**
|
|
6266
|
+
* Space group symmetry designation for the termination
|
|
6267
|
+
*/
|
|
6268
|
+
space_group_symmetry_label: string;
|
|
6269
|
+
}
|
|
6270
|
+
/** Schema dist/js/schema/material/reusable/slab/vacuum.json */
|
|
6271
|
+
/**
|
|
6272
|
+
* Vacuum thickness in Angstroms
|
|
6273
|
+
*/
|
|
6274
|
+
export type VacuumSchema = number;
|
|
6275
|
+
/** Schema dist/js/schema/material/reusable/supercell_matrix_2d.json */
|
|
6276
|
+
/**
|
|
6277
|
+
* Supercell matrix for xy plane transformations
|
|
6278
|
+
*
|
|
6279
|
+
* @minItems 2
|
|
6280
|
+
* @maxItems 2
|
|
6281
|
+
*/
|
|
6282
|
+
export type SupercellMatrix2DSchema = [[number, number], [number, number]];
|
|
6283
|
+
/** Schema dist/js/schema/material/reusable/supercell_matrix_3d.json */
|
|
6284
|
+
/**
|
|
6285
|
+
* 3x3 matrix of integers for transforming a unit cell into a supercell
|
|
6286
|
+
*
|
|
6287
|
+
* @minItems 3
|
|
6288
|
+
* @maxItems 3
|
|
6289
|
+
*/
|
|
6290
|
+
export type SupercellMatrix3DSchema = [[number, number, number], [number, number, number], [number, number, number]];
|
|
6154
6291
|
/** Schema dist/js/schema/material.json */
|
|
6155
6292
|
export interface MaterialSchema {
|
|
6156
6293
|
/**
|
|
@@ -6408,6 +6545,302 @@ export interface MaterialSchema {
|
|
|
6408
6545
|
isDefault?: boolean;
|
|
6409
6546
|
metadata?: {};
|
|
6410
6547
|
}
|
|
6548
|
+
/** Schema dist/js/schema/materials_category/single_material/two_dimensional/slab/configuration.json */
|
|
6549
|
+
/**
|
|
6550
|
+
* Configuration for creating a slab from a bulk material
|
|
6551
|
+
*/
|
|
6552
|
+
export interface SlabConfigurationSchema {
|
|
6553
|
+
bulk?: {
|
|
6554
|
+
/**
|
|
6555
|
+
* reduced chemical formula
|
|
6556
|
+
*/
|
|
6557
|
+
formula?: string;
|
|
6558
|
+
/**
|
|
6559
|
+
* chemical formula based on the number of atoms of each element in the supercell
|
|
6560
|
+
*/
|
|
6561
|
+
unitCellFormula?: string;
|
|
6562
|
+
basis: {
|
|
6563
|
+
/**
|
|
6564
|
+
* atomic elements schema
|
|
6565
|
+
*/
|
|
6566
|
+
elements: {
|
|
6567
|
+
/**
|
|
6568
|
+
* value of this entry
|
|
6569
|
+
*/
|
|
6570
|
+
value: string;
|
|
6571
|
+
/**
|
|
6572
|
+
* integer id of this entry
|
|
6573
|
+
*/
|
|
6574
|
+
id: number;
|
|
6575
|
+
}[];
|
|
6576
|
+
/**
|
|
6577
|
+
* atomic coordinates schema
|
|
6578
|
+
*/
|
|
6579
|
+
coordinates: {
|
|
6580
|
+
/**
|
|
6581
|
+
* value of this entry
|
|
6582
|
+
*
|
|
6583
|
+
* @minItems 3
|
|
6584
|
+
* @maxItems 3
|
|
6585
|
+
*/
|
|
6586
|
+
value: [number, number, number];
|
|
6587
|
+
/**
|
|
6588
|
+
* integer id of this entry
|
|
6589
|
+
*/
|
|
6590
|
+
id: number;
|
|
6591
|
+
}[];
|
|
6592
|
+
units?: "crystal" | "cartesian";
|
|
6593
|
+
/**
|
|
6594
|
+
* atomic labels schema
|
|
6595
|
+
*/
|
|
6596
|
+
labels?: {
|
|
6597
|
+
/**
|
|
6598
|
+
* value of this entry
|
|
6599
|
+
*/
|
|
6600
|
+
value: (number | string | number) | number;
|
|
6601
|
+
/**
|
|
6602
|
+
* integer id of this entry
|
|
6603
|
+
*/
|
|
6604
|
+
id: number;
|
|
6605
|
+
}[];
|
|
6606
|
+
};
|
|
6607
|
+
lattice: {
|
|
6608
|
+
/**
|
|
6609
|
+
* length of the first lattice vector
|
|
6610
|
+
*/
|
|
6611
|
+
a: number;
|
|
6612
|
+
/**
|
|
6613
|
+
* length of the second lattice vector
|
|
6614
|
+
*/
|
|
6615
|
+
b: number;
|
|
6616
|
+
/**
|
|
6617
|
+
* length of the third lattice vector
|
|
6618
|
+
*/
|
|
6619
|
+
c: number;
|
|
6620
|
+
/**
|
|
6621
|
+
* angle between first and second lattice vector
|
|
6622
|
+
*/
|
|
6623
|
+
alpha: number;
|
|
6624
|
+
/**
|
|
6625
|
+
* angle between second and third lattice vector
|
|
6626
|
+
*/
|
|
6627
|
+
beta: number;
|
|
6628
|
+
/**
|
|
6629
|
+
* angle between first and third lattice vector
|
|
6630
|
+
*/
|
|
6631
|
+
gamma: number;
|
|
6632
|
+
vectors?: {
|
|
6633
|
+
/**
|
|
6634
|
+
* @minItems 3
|
|
6635
|
+
* @maxItems 3
|
|
6636
|
+
*/
|
|
6637
|
+
a: [number, number, number];
|
|
6638
|
+
/**
|
|
6639
|
+
* @minItems 3
|
|
6640
|
+
* @maxItems 3
|
|
6641
|
+
*/
|
|
6642
|
+
b: [number, number, number];
|
|
6643
|
+
/**
|
|
6644
|
+
* @minItems 3
|
|
6645
|
+
* @maxItems 3
|
|
6646
|
+
*/
|
|
6647
|
+
c: [number, number, number];
|
|
6648
|
+
/**
|
|
6649
|
+
* lattice parameter for fractional coordinates
|
|
6650
|
+
*/
|
|
6651
|
+
alat?: number;
|
|
6652
|
+
units?: "angstrom" | "bohr";
|
|
6653
|
+
};
|
|
6654
|
+
type?: "CUB" | "BCC" | "FCC" | "TET" | "MCL" | "ORC" | "ORCC" | "ORCF" | "ORCI" | "HEX" | "BCT" | "TRI" | "MCLC" | "RHL";
|
|
6655
|
+
units?: {
|
|
6656
|
+
length?: "angstrom" | "bohr";
|
|
6657
|
+
angle?: "degree" | "radian";
|
|
6658
|
+
};
|
|
6659
|
+
};
|
|
6660
|
+
derivedProperties?: ({
|
|
6661
|
+
name?: "volume";
|
|
6662
|
+
units?: "angstrom^3";
|
|
6663
|
+
value: number;
|
|
6664
|
+
} | {
|
|
6665
|
+
name?: "density";
|
|
6666
|
+
units?: "g/cm^3";
|
|
6667
|
+
value: number;
|
|
6668
|
+
} | {
|
|
6669
|
+
/**
|
|
6670
|
+
* point group symbol in Schoenflies notation
|
|
6671
|
+
*/
|
|
6672
|
+
pointGroupSymbol?: string;
|
|
6673
|
+
/**
|
|
6674
|
+
* space group symbol in Hermann–Mauguin notation
|
|
6675
|
+
*/
|
|
6676
|
+
spaceGroupSymbol?: string;
|
|
6677
|
+
/**
|
|
6678
|
+
* tolerance used for symmetry calculation
|
|
6679
|
+
*/
|
|
6680
|
+
tolerance?: {
|
|
6681
|
+
units?: "angstrom";
|
|
6682
|
+
value: number;
|
|
6683
|
+
};
|
|
6684
|
+
name?: "symmetry";
|
|
6685
|
+
} | {
|
|
6686
|
+
name?: "elemental_ratio";
|
|
6687
|
+
value: number;
|
|
6688
|
+
/**
|
|
6689
|
+
* the element this ratio is for
|
|
6690
|
+
*/
|
|
6691
|
+
element?: string;
|
|
6692
|
+
} | {
|
|
6693
|
+
name?: "p-norm";
|
|
6694
|
+
/**
|
|
6695
|
+
* degree of the dimensionality of the norm
|
|
6696
|
+
*/
|
|
6697
|
+
degree?: number;
|
|
6698
|
+
value: number;
|
|
6699
|
+
} | {
|
|
6700
|
+
name?: "inchi";
|
|
6701
|
+
value: string;
|
|
6702
|
+
} | {
|
|
6703
|
+
name?: "inchi_key";
|
|
6704
|
+
value: string;
|
|
6705
|
+
})[];
|
|
6706
|
+
/**
|
|
6707
|
+
* information about a database source
|
|
6708
|
+
*/
|
|
6709
|
+
external?: {
|
|
6710
|
+
/**
|
|
6711
|
+
* ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32
|
|
6712
|
+
*/
|
|
6713
|
+
id: string | number;
|
|
6714
|
+
/**
|
|
6715
|
+
* Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.
|
|
6716
|
+
*/
|
|
6717
|
+
source: string;
|
|
6718
|
+
/**
|
|
6719
|
+
* Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).
|
|
6720
|
+
*/
|
|
6721
|
+
origin: boolean;
|
|
6722
|
+
/**
|
|
6723
|
+
* Original response from external source.
|
|
6724
|
+
*/
|
|
6725
|
+
data?: {};
|
|
6726
|
+
/**
|
|
6727
|
+
* Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506
|
|
6728
|
+
*/
|
|
6729
|
+
doi?: string;
|
|
6730
|
+
/**
|
|
6731
|
+
* The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers
|
|
6732
|
+
*/
|
|
6733
|
+
url?: string;
|
|
6734
|
+
};
|
|
6735
|
+
/**
|
|
6736
|
+
* file source with the information inside
|
|
6737
|
+
*/
|
|
6738
|
+
src?: {
|
|
6739
|
+
/**
|
|
6740
|
+
* file extension
|
|
6741
|
+
*/
|
|
6742
|
+
extension?: string;
|
|
6743
|
+
/**
|
|
6744
|
+
* file name without extension
|
|
6745
|
+
*/
|
|
6746
|
+
filename: string;
|
|
6747
|
+
/**
|
|
6748
|
+
* file content as raw text
|
|
6749
|
+
*/
|
|
6750
|
+
text: string;
|
|
6751
|
+
/**
|
|
6752
|
+
* MD5 hash based on file content
|
|
6753
|
+
*/
|
|
6754
|
+
hash: string;
|
|
6755
|
+
};
|
|
6756
|
+
/**
|
|
6757
|
+
* Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
|
|
6758
|
+
*/
|
|
6759
|
+
scaledHash?: string;
|
|
6760
|
+
/**
|
|
6761
|
+
* Corresponding ICSD id of the material
|
|
6762
|
+
*/
|
|
6763
|
+
icsdId?: number;
|
|
6764
|
+
/**
|
|
6765
|
+
* Whether to work in the finite molecular picture (usually with atomic orbital basis)
|
|
6766
|
+
*/
|
|
6767
|
+
isNonPeriodic?: boolean;
|
|
6768
|
+
consistencyChecks?: {
|
|
6769
|
+
/**
|
|
6770
|
+
* Name of the consistency check that is performed, which is listed in an enum.
|
|
6771
|
+
*/
|
|
6772
|
+
name: "default" | "atomsTooClose" | "atomsOverlap";
|
|
6773
|
+
/**
|
|
6774
|
+
* Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
|
|
6775
|
+
*/
|
|
6776
|
+
key: string;
|
|
6777
|
+
/**
|
|
6778
|
+
* Severity level of the problem, which is used in UI to differentiate.
|
|
6779
|
+
*/
|
|
6780
|
+
severity: "info" | "warning" | "error";
|
|
6781
|
+
/**
|
|
6782
|
+
* Message generated by the consistency check describing the problem.
|
|
6783
|
+
*/
|
|
6784
|
+
message: string;
|
|
6785
|
+
}[];
|
|
6786
|
+
/**
|
|
6787
|
+
* entity identity
|
|
6788
|
+
*/
|
|
6789
|
+
_id?: string;
|
|
6790
|
+
/**
|
|
6791
|
+
* entity slug
|
|
6792
|
+
*/
|
|
6793
|
+
slug?: string;
|
|
6794
|
+
systemName?: string;
|
|
6795
|
+
/**
|
|
6796
|
+
* entity's schema version. Used to distinct between different schemas.
|
|
6797
|
+
*/
|
|
6798
|
+
schemaVersion?: string;
|
|
6799
|
+
/**
|
|
6800
|
+
* entity name
|
|
6801
|
+
*/
|
|
6802
|
+
name?: string;
|
|
6803
|
+
/**
|
|
6804
|
+
* Identifies that entity is defaultable
|
|
6805
|
+
*/
|
|
6806
|
+
isDefault?: boolean;
|
|
6807
|
+
metadata?: {};
|
|
6808
|
+
};
|
|
6809
|
+
/**
|
|
6810
|
+
* Miller indices for crystallographic plane designation
|
|
6811
|
+
*
|
|
6812
|
+
* @minItems 3
|
|
6813
|
+
* @maxItems 3
|
|
6814
|
+
*/
|
|
6815
|
+
miller_indices?: [number, number, number];
|
|
6816
|
+
/**
|
|
6817
|
+
* Number of atomic layers in a structural component
|
|
6818
|
+
*/
|
|
6819
|
+
number_of_layers?: number;
|
|
6820
|
+
/**
|
|
6821
|
+
* Vacuum thickness in Angstroms
|
|
6822
|
+
*/
|
|
6823
|
+
vacuum?: number;
|
|
6824
|
+
/**
|
|
6825
|
+
* Supercell matrix for xy plane transformations
|
|
6826
|
+
*
|
|
6827
|
+
* @minItems 2
|
|
6828
|
+
* @maxItems 2
|
|
6829
|
+
*/
|
|
6830
|
+
xy_supercell_matrix?: [[number, number], [number, number]];
|
|
6831
|
+
/**
|
|
6832
|
+
* Whether to use conventional cell
|
|
6833
|
+
*/
|
|
6834
|
+
use_conventional_cell?: boolean;
|
|
6835
|
+
/**
|
|
6836
|
+
* Whether to make z-axis orthogonal
|
|
6837
|
+
*/
|
|
6838
|
+
use_orthogonal_z?: boolean;
|
|
6839
|
+
/**
|
|
6840
|
+
* Whether to make the slab primitive
|
|
6841
|
+
*/
|
|
6842
|
+
make_primitive?: boolean;
|
|
6843
|
+
}
|
|
6411
6844
|
/** Schema dist/js/schema/method/categorized_method.json */
|
|
6412
6845
|
export interface CategorizedMethod {
|
|
6413
6846
|
units: {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[1, 2, 3]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
15.0
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"bulk": {
|
|
3
|
+
"...": "include(../../../../material.json)"
|
|
4
|
+
},
|
|
5
|
+
"miller_indices": [
|
|
6
|
+
0,
|
|
7
|
+
0,
|
|
8
|
+
1
|
|
9
|
+
],
|
|
10
|
+
"number_of_layers": 3,
|
|
11
|
+
"vacuum": 15.0,
|
|
12
|
+
"xy_supercell_matrix": [
|
|
13
|
+
[
|
|
14
|
+
1,
|
|
15
|
+
0
|
|
16
|
+
],
|
|
17
|
+
[
|
|
18
|
+
0,
|
|
19
|
+
1
|
|
20
|
+
]
|
|
21
|
+
],
|
|
22
|
+
"use_conventional_cell": true,
|
|
23
|
+
"use_orthogonal_z": true,
|
|
24
|
+
"make_primitive": true
|
|
25
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mat3ra/esse",
|
|
3
|
-
"version": "2025.
|
|
3
|
+
"version": "2025.5.16-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",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
},
|
|
28
28
|
"homepage": "https://github.com/Exabyte-io/esse",
|
|
29
29
|
"devDependencies": {
|
|
30
|
-
"@exabyte-io/eslint-config": "
|
|
30
|
+
"@exabyte-io/eslint-config": "2025.5.13-0",
|
|
31
31
|
"@mat3ra/tsconfig": "^2024.6.3-0",
|
|
32
32
|
"@typescript-eslint/eslint-plugin": "^5.62.0",
|
|
33
33
|
"@typescript-eslint/parser": "^5.62.0",
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
"eslint-import-resolver-node": "^0.3.9",
|
|
41
41
|
"eslint-plugin-import": "^2.31.0",
|
|
42
42
|
"eslint-plugin-jsdoc": "^50.6.9",
|
|
43
|
+
"eslint-plugin-jsonc": "^2.20.0",
|
|
43
44
|
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
44
45
|
"eslint-plugin-mui-path-imports": "0.0.15",
|
|
45
46
|
"eslint-plugin-prettier": "^4.2.1",
|
|
@@ -83,8 +84,13 @@
|
|
|
83
84
|
"node": ">=14.0.0"
|
|
84
85
|
},
|
|
85
86
|
"lint-staged": {
|
|
86
|
-
"
|
|
87
|
-
|
|
87
|
+
"src/**/*.js": [
|
|
88
|
+
"eslint --cache --fix",
|
|
89
|
+
"prettier --write"
|
|
90
|
+
],
|
|
91
|
+
"src/**/*.css": "prettier --write",
|
|
92
|
+
"schemas/**/*.json": "eslint --cache --fix --no-ignore",
|
|
93
|
+
"example/**/*.json": "eslint --cache --fix --no-ignore"
|
|
88
94
|
},
|
|
89
95
|
"exports": {
|
|
90
96
|
"./dist/js/schema/*.json": "./dist/js/schema/*.json",
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "apse/materials/builders/slab/pymatgen/parameters",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"title": "Pymatgen Slab Generator Parameters Schema",
|
|
5
|
+
"description": "Parameters for the Pymatgen slab generator. https://github.com/materialsproject/pymatgen/blob/585bb673c4aa222669c4b0d72ffeec3dbf092630/pymatgen/core/surface.py#L1187",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"min_vacuum_size": {
|
|
9
|
+
"description": "Minimum size of the vacuum in layers or angstroms",
|
|
10
|
+
"type": [
|
|
11
|
+
"integer",
|
|
12
|
+
"number"
|
|
13
|
+
],
|
|
14
|
+
"minimum": 0,
|
|
15
|
+
"default": 1
|
|
16
|
+
},
|
|
17
|
+
"in_unit_planes": {
|
|
18
|
+
"description": "Whether to cleave in unit planes",
|
|
19
|
+
"type": "boolean",
|
|
20
|
+
"default": true
|
|
21
|
+
},
|
|
22
|
+
"reorient_lattice": {
|
|
23
|
+
"description": "Whether to reorient the lattice",
|
|
24
|
+
"type": "boolean",
|
|
25
|
+
"default": true
|
|
26
|
+
},
|
|
27
|
+
"symmetrize": {
|
|
28
|
+
"description": "Whether to symmetrize the slab",
|
|
29
|
+
"type": "boolean",
|
|
30
|
+
"default": true
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "material/builders/base/selector-parameters",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"title": "Base Selector Parameters Schema",
|
|
5
|
+
"description": "Base parameters for all builder selectors",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"default_index": {
|
|
9
|
+
"description": "Default index for the selector",
|
|
10
|
+
"type": "integer",
|
|
11
|
+
"minimum": 0,
|
|
12
|
+
"default": 0
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "material/builders/single-material/two-dimensional/slab/builder-parameters",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"title": "Slab Builder Parameters Schema",
|
|
5
|
+
"description": "Parameters for the slab builder",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"allOf": [
|
|
8
|
+
{
|
|
9
|
+
"$ref": "../../../../../apse/materials/builders/slab/pymatgen/parameters.json"
|
|
10
|
+
}
|
|
11
|
+
]
|
|
12
|
+
}
|
package/schema/material/builders/single_material/two_dimensional/slab/selector_parameters.json
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "material/builders/single-material/two-dimensional/slab/selector-parameters",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"title": "Slab Selector Parameters Schema",
|
|
5
|
+
"description": "Parameters for slab selection",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"termination": {
|
|
9
|
+
"$ref": "../../../../../material/reusable/slab/termination.json"
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|