mat3ra-esse 2025.5.16.post0__py3-none-any.whl → 2025.5.17.post0__py3-none-any.whl

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.

Potentially problematic release.


This version of mat3ra-esse might be problematic. Click here for more details.

Files changed (81) hide show
  1. mat3ra/esse/data/examples.py +1 -1
  2. mat3ra/esse/data/schemas.py +1 -1
  3. mat3ra/esse/models/apse/file/applications/espresso/7.2/pw_x.py +8 -8
  4. mat3ra/esse/models/core/reusable/energy.py +2 -2
  5. mat3ra/esse/models/definitions/chemical_elements.py +13 -0
  6. mat3ra/esse/models/definitions/materials.py +13 -0
  7. mat3ra/esse/models/element.py +128 -10
  8. mat3ra/esse/models/enums/__init__.py +3 -0
  9. mat3ra/esse/models/enums/chemical_elements.py +13 -0
  10. mat3ra/esse/models/material/__init__.py +140 -14
  11. mat3ra/esse/models/material/builders/single_material/two_dimensional/slab/selector_parameters.py +128 -4
  12. mat3ra/esse/models/material/reusable/slab/enums/__init__.py +3 -0
  13. mat3ra/esse/models/material/reusable/slab/enums/exposed_face.py +13 -0
  14. mat3ra/esse/models/material/reusable/slab/number_of_layers.py +1 -1
  15. mat3ra/esse/models/material/reusable/slab/termination.py +129 -3
  16. mat3ra/esse/models/material/reusable/slab/vacuum.py +2 -2
  17. mat3ra/esse/models/materials_category/defects/__init__.py +3 -0
  18. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/__init__.py +3 -0
  19. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/adatom/__init__.py +3 -0
  20. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/adatom/configuration.py +672 -0
  21. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/configuration.py +546 -0
  22. mat3ra/esse/models/materials_category/defects/configuration.py +541 -0
  23. mat3ra/esse/models/materials_category/defects/enums/__init__.py +3 -0
  24. mat3ra/esse/models/materials_category/defects/enums/atom_placement_method.py +22 -0
  25. mat3ra/esse/models/materials_category/defects/enums/complex_defect_type.py +18 -0
  26. mat3ra/esse/models/materials_category/defects/enums/coordinates_shape.py +21 -0
  27. mat3ra/esse/models/materials_category/defects/enums/point_defect_type.py +13 -0
  28. mat3ra/esse/models/materials_category/defects/enums/slab_defect_type.py +19 -0
  29. mat3ra/esse/models/materials_category/defects/enums.py +13 -0
  30. mat3ra/esse/models/materials_category/defects/one_dimensional/terrace/__init__.py +3 -0
  31. mat3ra/esse/models/materials_category/defects/one_dimensional/terrace/configuration.py +425 -0
  32. mat3ra/esse/models/materials_category/defects/slab/__init__.py +3 -0
  33. mat3ra/esse/models/materials_category/defects/slab/configuration.py +412 -0
  34. mat3ra/esse/models/materials_category/defects/two_dimensional/island/__init__.py +3 -0
  35. mat3ra/esse/models/materials_category/defects/two_dimensional/island/configuration.py +449 -0
  36. mat3ra/esse/models/materials_category/defects/two_dimensional/slab_grain_boundary/__init__.py +3 -0
  37. mat3ra/esse/models/materials_category/defects/two_dimensional/slab_grain_boundary/configuration.py +1105 -0
  38. mat3ra/esse/models/materials_category/defects/zero_dimensional/adatom/__init__.py +3 -0
  39. mat3ra/esse/models/materials_category/defects/zero_dimensional/adatom/base_configuration.py +418 -0
  40. mat3ra/esse/models/materials_category/defects/zero_dimensional/adatom/configuration.py +418 -0
  41. mat3ra/esse/models/materials_category/defects/zero_dimensional/complex/__init__.py +3 -0
  42. mat3ra/esse/models/materials_category/defects/zero_dimensional/complex/pair.py +1534 -0
  43. mat3ra/esse/models/materials_category/defects/zero_dimensional/defect_pair/__init__.py +3 -0
  44. mat3ra/esse/models/materials_category/defects/zero_dimensional/defect_pair/configuration.py +1026 -0
  45. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/__init__.py +3 -0
  46. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/base_configuration.py +30 -0
  47. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/configuration.py +672 -0
  48. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/interstitial/__init__.py +3 -0
  49. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/interstitial/configuration.py +672 -0
  50. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/substitution/__init__.py +3 -0
  51. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/substitution/configuration.py +672 -0
  52. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/vacancy/__init__.py +3 -0
  53. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/vacancy/configuration.py +672 -0
  54. mat3ra/esse/models/materials_category/defects/zero_dimensional/slab/__init__.py +3 -0
  55. mat3ra/esse/models/materials_category/defects/zero_dimensional/slab/configuration.py +434 -0
  56. mat3ra/esse/models/materials_category/single_material/two_dimensional/slab/configuration.py +142 -16
  57. mat3ra/esse/models/properties_directory/derived_properties.py +11 -11
  58. mat3ra/esse/models/properties_directory/non_scalar/density_of_states.py +2 -2
  59. mat3ra/esse/models/properties_directory/non_scalar/phonon_dispersions.py +2 -2
  60. mat3ra/esse/models/properties_directory/non_scalar/phonon_dos.py +2 -2
  61. mat3ra/esse/models/properties_directory/non_scalar/total_energy_contributions.py +50 -50
  62. mat3ra/esse/models/properties_directory/non_scalar/vibrational_spectrum.py +2 -2
  63. mat3ra/esse/models/properties_directory/scalar/electron_affinity.py +2 -2
  64. mat3ra/esse/models/properties_directory/scalar/fermi_energy.py +2 -2
  65. mat3ra/esse/models/properties_directory/scalar/formation_energy.py +2 -2
  66. mat3ra/esse/models/properties_directory/scalar/ionization_potential.py +2 -2
  67. mat3ra/esse/models/properties_directory/scalar/reaction_energy_barrier.py +2 -2
  68. mat3ra/esse/models/properties_directory/scalar/surface_energy.py +2 -2
  69. mat3ra/esse/models/properties_directory/scalar/total_energy.py +2 -2
  70. mat3ra/esse/models/properties_directory/scalar/valence_band_offset.py +2 -2
  71. mat3ra/esse/models/properties_directory/scalar/zero_point_energy.py +2 -2
  72. mat3ra/esse/models/properties_directory/structural/basis/__init__.py +128 -2
  73. mat3ra/esse/models/properties_directory/structural/basis/atomic_element.py +131 -2
  74. mat3ra/esse/models/properties_directory/structural/basis/atomic_elements.py +130 -3
  75. mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +4 -4
  76. mat3ra/esse/models/properties_directory/workflow/convergence/ionic.py +2 -2
  77. {mat3ra_esse-2025.5.16.post0.dist-info → mat3ra_esse-2025.5.17.post0.dist-info}/METADATA +1 -1
  78. {mat3ra_esse-2025.5.16.post0.dist-info → mat3ra_esse-2025.5.17.post0.dist-info}/RECORD +81 -36
  79. {mat3ra_esse-2025.5.16.post0.dist-info → mat3ra_esse-2025.5.17.post0.dist-info}/WHEEL +0 -0
  80. {mat3ra_esse-2025.5.16.post0.dist-info → mat3ra_esse-2025.5.17.post0.dist-info}/licenses/LICENSE.md +0 -0
  81. {mat3ra_esse-2025.5.16.post0.dist-info → mat3ra_esse-2025.5.17.post0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,449 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: materials_category/defects/two_dimensional/island/configuration.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+ from typing import Any, Dict, List, Literal, Optional, Union
9
+
10
+ from pydantic import BaseModel, Field, RootModel, confloat, conint
11
+
12
+
13
+ class Shape(Enum):
14
+ sphere = "sphere"
15
+ cylinder = "cylinder"
16
+ rectangle = "rectangle"
17
+ triangular_prism = "triangular_prism"
18
+
19
+
20
+ class Condition(BaseModel):
21
+ shape: Shape
22
+ center_position: Optional[List[float]] = None
23
+ """
24
+ Center position for symmetric shapes
25
+ """
26
+ radius: Optional[confloat(ge=0.0)] = None
27
+ """
28
+ Radius for circular shapes
29
+ """
30
+ min_z: Optional[float] = None
31
+ """
32
+ Minimum z-coordinate in Angstroms
33
+ """
34
+ max_z: Optional[float] = None
35
+ """
36
+ Maximum z-coordinate in Angstroms
37
+ """
38
+ min_coordinate: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="coordinate 3d schema")
39
+ max_coordinate: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="coordinate 3d schema")
40
+ position_on_surface_1: Optional[List[float]] = Field(None, max_length=2, min_length=2, title="coordinate 2d schema")
41
+ position_on_surface_2: Optional[List[float]] = Field(None, max_length=2, min_length=2, title="coordinate 2d schema")
42
+ position_on_surface_3: Optional[List[float]] = Field(None, max_length=2, min_length=2, title="coordinate 2d schema")
43
+
44
+
45
+ class AtomicElementSchema(BaseModel):
46
+ value: str
47
+ """
48
+ value of this entry
49
+ """
50
+ id: int
51
+ """
52
+ integer id of this entry
53
+ """
54
+
55
+
56
+ class AtomicCoordinateSchema(BaseModel):
57
+ value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
58
+ """
59
+ value of this entry
60
+ """
61
+ id: int
62
+ """
63
+ integer id of this entry
64
+ """
65
+
66
+
67
+ class BasisUnitsEnum(Enum):
68
+ crystal = "crystal"
69
+ cartesian = "cartesian"
70
+
71
+
72
+ class AtomicLabelSchema(BaseModel):
73
+ value: Union[Union[int, str, float], conint(ge=1, le=9)]
74
+ """
75
+ value of this entry
76
+ """
77
+ id: int
78
+ """
79
+ integer id of this entry
80
+ """
81
+
82
+
83
+ class BasisSchema(BaseModel):
84
+ elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema")
85
+ """
86
+ atomic elements schema
87
+ """
88
+ coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
89
+ """
90
+ atomic coordinates schema
91
+ """
92
+ units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
93
+ labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
94
+ """
95
+ atomic labels schema
96
+ """
97
+
98
+
99
+ class LatticeVectorsUnitsEnum(Enum):
100
+ angstrom = "angstrom"
101
+ bohr = "bohr"
102
+
103
+
104
+ class LatticeVectorsSchema(BaseModel):
105
+ a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
106
+ b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
107
+ c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
108
+ alat: Optional[float] = 1
109
+ """
110
+ lattice parameter for fractional coordinates
111
+ """
112
+ units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
113
+
114
+
115
+ class LatticeTypeEnum(Enum):
116
+ CUB = "CUB"
117
+ BCC = "BCC"
118
+ FCC = "FCC"
119
+ TET = "TET"
120
+ MCL = "MCL"
121
+ ORC = "ORC"
122
+ ORCC = "ORCC"
123
+ ORCF = "ORCF"
124
+ ORCI = "ORCI"
125
+ HEX = "HEX"
126
+ BCT = "BCT"
127
+ TRI = "TRI"
128
+ MCLC = "MCLC"
129
+ RHL = "RHL"
130
+
131
+
132
+ class LatticeUnitsLengthEnum(Enum):
133
+ angstrom = "angstrom"
134
+ bohr = "bohr"
135
+
136
+
137
+ class LatticeUnitsAngleEnum(Enum):
138
+ degree = "degree"
139
+ radian = "radian"
140
+
141
+
142
+ class LatticeUnitsSchema(BaseModel):
143
+ length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
144
+ angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
145
+
146
+
147
+ class LatticeSchema(BaseModel):
148
+ a: float
149
+ """
150
+ length of the first lattice vector
151
+ """
152
+ b: float
153
+ """
154
+ length of the second lattice vector
155
+ """
156
+ c: float
157
+ """
158
+ length of the third lattice vector
159
+ """
160
+ alpha: float
161
+ """
162
+ angle between first and second lattice vector
163
+ """
164
+ beta: float
165
+ """
166
+ angle between second and third lattice vector
167
+ """
168
+ gamma: float
169
+ """
170
+ angle between first and third lattice vector
171
+ """
172
+ vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema")
173
+ type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
174
+ units: Optional[LatticeUnitsSchema] = Field(
175
+ default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}),
176
+ title="Lattice units schema",
177
+ )
178
+
179
+
180
+ class Name(Enum):
181
+ volume = "volume"
182
+
183
+
184
+ class Units(Enum):
185
+ angstrom_3 = "angstrom^3"
186
+
187
+
188
+ class VolumeSchema(BaseModel):
189
+ name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
190
+ units: Optional[Units] = None
191
+ value: float
192
+
193
+
194
+ class Name104(Enum):
195
+ density = "density"
196
+
197
+
198
+ class Units46(Enum):
199
+ g_cm_3 = "g/cm^3"
200
+
201
+
202
+ class DensitySchema(BaseModel):
203
+ name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
204
+ units: Optional[Units46] = None
205
+ value: float
206
+
207
+
208
+ class Units47(Enum):
209
+ angstrom = "angstrom"
210
+
211
+
212
+ class ScalarSchema(BaseModel):
213
+ units: Optional[Units47] = None
214
+ value: float
215
+
216
+
217
+ class Name105(Enum):
218
+ symmetry = "symmetry"
219
+
220
+
221
+ class SymmetrySchema(BaseModel):
222
+ pointGroupSymbol: Optional[str] = None
223
+ """
224
+ point group symbol in Schoenflies notation
225
+ """
226
+ spaceGroupSymbol: Optional[str] = None
227
+ """
228
+ space group symbol in Hermann–Mauguin notation
229
+ """
230
+ tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema")
231
+ """
232
+ tolerance used for symmetry calculation
233
+ """
234
+ name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
235
+
236
+
237
+ class Name106(Enum):
238
+ elemental_ratio = "elemental_ratio"
239
+
240
+
241
+ class ElementalRatio(BaseModel):
242
+ name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
243
+ value: confloat(ge=0.0, le=1.0)
244
+ element: Optional[str] = None
245
+ """
246
+ the element this ratio is for
247
+ """
248
+
249
+
250
+ class Name107(Enum):
251
+ p_norm = "p-norm"
252
+
253
+
254
+ class PNorm(BaseModel):
255
+ name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
256
+ degree: Optional[int] = None
257
+ """
258
+ degree of the dimensionality of the norm
259
+ """
260
+ value: float
261
+
262
+
263
+ class Name108(Enum):
264
+ inchi = "inchi"
265
+
266
+
267
+ class InChIRepresentationSchema(BaseModel):
268
+ name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
269
+ value: str
270
+
271
+
272
+ class Name109(Enum):
273
+ inchi_key = "inchi_key"
274
+
275
+
276
+ class InChIKeyRepresentationSchema(BaseModel):
277
+ name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
278
+ value: str
279
+
280
+
281
+ class DerivedPropertiesSchema(
282
+ RootModel[
283
+ Union[
284
+ VolumeSchema,
285
+ DensitySchema,
286
+ SymmetrySchema,
287
+ ElementalRatio,
288
+ PNorm,
289
+ InChIRepresentationSchema,
290
+ InChIKeyRepresentationSchema,
291
+ ]
292
+ ]
293
+ ):
294
+ root: Union[
295
+ VolumeSchema,
296
+ DensitySchema,
297
+ SymmetrySchema,
298
+ ElementalRatio,
299
+ PNorm,
300
+ InChIRepresentationSchema,
301
+ InChIKeyRepresentationSchema,
302
+ ] = Field(..., discriminator="name")
303
+
304
+
305
+ class DatabaseSourceSchema(BaseModel):
306
+ id: Union[str, float]
307
+ """
308
+ 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
309
+ """
310
+ source: str
311
+ """
312
+ Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.
313
+ """
314
+ origin: bool
315
+ """
316
+ 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).
317
+ """
318
+ data: Optional[Dict[str, Any]] = None
319
+ """
320
+ Original response from external source.
321
+ """
322
+ doi: Optional[str] = None
323
+ """
324
+ Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506
325
+ """
326
+ url: Optional[str] = None
327
+ """
328
+ 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
329
+ """
330
+
331
+
332
+ class FileSourceSchema(BaseModel):
333
+ extension: Optional[str] = None
334
+ """
335
+ file extension
336
+ """
337
+ filename: str
338
+ """
339
+ file name without extension
340
+ """
341
+ text: str
342
+ """
343
+ file content as raw text
344
+ """
345
+ hash: str
346
+ """
347
+ MD5 hash based on file content
348
+ """
349
+
350
+
351
+ class Name110(Enum):
352
+ default = "default"
353
+ atomsTooClose = "atomsTooClose"
354
+ atomsOverlap = "atomsOverlap"
355
+
356
+
357
+ class Severity(Enum):
358
+ info = "info"
359
+ warning = "warning"
360
+ error = "error"
361
+
362
+
363
+ class MaterialConsistencyCheckSchema(BaseModel):
364
+ name: Name110
365
+ """
366
+ Name of the consistency check that is performed, which is listed in an enum.
367
+ """
368
+ key: str
369
+ """
370
+ Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
371
+ """
372
+ severity: Severity
373
+ """
374
+ Severity level of the problem, which is used in UI to differentiate.
375
+ """
376
+ message: str
377
+ """
378
+ Message generated by the consistency check describing the problem.
379
+ """
380
+
381
+
382
+ class MaterialSchema(BaseModel):
383
+ formula: Optional[str] = None
384
+ """
385
+ reduced chemical formula
386
+ """
387
+ unitCellFormula: Optional[str] = None
388
+ """
389
+ chemical formula based on the number of atoms of each element in the supercell
390
+ """
391
+ basis: BasisSchema = Field(..., title="basis schema")
392
+ lattice: LatticeSchema = Field(..., title="lattice schema")
393
+ derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema")
394
+ external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
395
+ """
396
+ information about a database source
397
+ """
398
+ src: Optional[FileSourceSchema] = Field(None, title="file source schema")
399
+ """
400
+ file source with the information inside
401
+ """
402
+ scaledHash: Optional[str] = None
403
+ """
404
+ Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
405
+ """
406
+ icsdId: Optional[int] = None
407
+ """
408
+ Corresponding ICSD id of the material
409
+ """
410
+ isNonPeriodic: Optional[bool] = None
411
+ """
412
+ Whether to work in the finite molecular picture (usually with atomic orbital basis)
413
+ """
414
+ consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None
415
+ field_id: Optional[str] = Field(None, alias="_id")
416
+ """
417
+ entity identity
418
+ """
419
+ slug: Optional[str] = None
420
+ """
421
+ entity slug
422
+ """
423
+ systemName: Optional[str] = None
424
+ schemaVersion: Optional[str] = "2022.8.16"
425
+ """
426
+ entity's schema version. Used to distinct between different schemas.
427
+ """
428
+ name: Optional[str] = None
429
+ """
430
+ entity name
431
+ """
432
+ isDefault: Optional[bool] = False
433
+ """
434
+ Identifies that entity is defaultable
435
+ """
436
+ metadata: Optional[Dict[str, Any]] = None
437
+
438
+
439
+ class IslandSlabDefectConfigurationSchema(BaseModel):
440
+ defect_type: Literal["island"] = "island"
441
+ condition: Optional[Condition] = None
442
+ """
443
+ Spatial condition defining the shape of the island
444
+ """
445
+ number_of_added_layers: Optional[conint(ge=1)] = Field(1, title="Number of Layers Schema")
446
+ """
447
+ Number of atomic layers in a structural component
448
+ """
449
+ crystal: MaterialSchema = Field(..., title="material schema")
@@ -0,0 +1,3 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: schema
3
+ # version: 0.28.5