mat3ra-esse 2025.5.17.post0__py3-none-any.whl → 2025.5.17.post2__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 (84) 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 +6 -6
  4. mat3ra/esse/models/coordinates_shape_enum.py +15 -0
  5. mat3ra/esse/models/core/reusable/axis_enum.py +13 -0
  6. mat3ra/esse/models/core/reusable/coordinate_conditions/base.py +21 -0
  7. mat3ra/esse/models/core/reusable/coordinate_conditions/box.py +24 -0
  8. mat3ra/esse/models/core/reusable/coordinate_conditions/cylinder.py +26 -0
  9. mat3ra/esse/models/core/reusable/coordinate_conditions/enum.py +15 -0
  10. mat3ra/esse/models/core/reusable/coordinate_conditions/plane.py +24 -0
  11. mat3ra/esse/models/core/reusable/coordinate_conditions/sphere.py +24 -0
  12. mat3ra/esse/models/core/reusable/coordinate_conditions/triangular_prism.py +27 -0
  13. mat3ra/esse/models/core/reusable/energy.py +2 -2
  14. mat3ra/esse/models/element.py +6 -6
  15. mat3ra/esse/models/material/__init__.py +14 -14
  16. mat3ra/esse/models/material/reusable/coordinate_conditions/base.py +21 -0
  17. mat3ra/esse/models/material/reusable/coordinate_conditions/box.py +24 -0
  18. mat3ra/esse/models/material/reusable/coordinate_conditions/cylinder.py +26 -0
  19. mat3ra/esse/models/material/reusable/coordinate_conditions/plane.py +24 -0
  20. mat3ra/esse/models/material/reusable/coordinate_conditions/sphere.py +24 -0
  21. mat3ra/esse/models/material/reusable/coordinate_conditions/triangular_prism.py +27 -0
  22. mat3ra/esse/models/{materials_category/defects/slab/configuration.py → material/reusable/slab/slab_configuration_with_termination.py} +195 -18
  23. mat3ra/esse/models/{materials_category/defects/zero_dimensional/adatom/configuration.py → material/reusable/slab/slab_with_termination.py} +198 -23
  24. mat3ra/esse/models/material/reusable/slab/two_slabs_stack.py +618 -0
  25. mat3ra/esse/models/{materials_category/defects/zero_dimensional/adatom/base_configuration.py → material/reusable/slab_configuration_with_termination.py} +318 -24
  26. mat3ra/esse/models/material/reusable/stack/slab_configuration_with_termination.py +593 -0
  27. mat3ra/esse/models/material/reusable/stack/slab_in_stack.py +720 -0
  28. mat3ra/esse/models/material/reusable/stack/stack_of_slabs.py +737 -0
  29. mat3ra/esse/models/material/reusable/stack/stack_of_two_slabs.py +737 -0
  30. mat3ra/esse/models/material/reusable/supercell/supercell_matrix_2d.py +25 -0
  31. mat3ra/esse/models/material/reusable/supercell/supercell_matrix_3d.py +27 -0
  32. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/adatom/configuration.py +14 -14
  33. mat3ra/esse/models/materials_category/defects/{zero_dimensional/slab → by_host/two_dimensional/layered}/configuration.py +149 -34
  34. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/{configuration.py → point/configuration.py} +19 -15
  35. mat3ra/esse/models/materials_category/defects/configuration.py +18 -14
  36. mat3ra/esse/models/materials_category/defects/one_dimensional/terrace/configuration.py +157 -19
  37. mat3ra/esse/models/materials_category/defects/two_dimensional/{slab_grain_boundary → grain_boundary_plane}/configuration.py +499 -404
  38. mat3ra/esse/models/materials_category/defects/two_dimensional/island/condition_json.py +28 -0
  39. mat3ra/esse/models/materials_category/defects/two_dimensional/island/configuration.py +163 -48
  40. mat3ra/esse/models/materials_category/defects/zero_dimensional/complex/pair/__init__.py +3 -0
  41. mat3ra/esse/models/materials_category/defects/zero_dimensional/complex/{pair.py → pair/configuration.py} +137 -133
  42. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/configuration.py +14 -14
  43. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/interstitial/configuration.py +14 -14
  44. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/substitution/configuration.py +14 -14
  45. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/vacancy/configuration.py +14 -14
  46. mat3ra/esse/models/materials_category/multi_material/interfaces/__init__.py +3 -0
  47. mat3ra/esse/models/materials_category/multi_material/interfaces/configuration.py +737 -0
  48. mat3ra/esse/models/materials_category/single_material/two_dimensional/slab/configuration.py +17 -21
  49. mat3ra/esse/models/properties_directory/derived_properties.py +11 -11
  50. mat3ra/esse/models/properties_directory/non_scalar/density_of_states.py +2 -2
  51. mat3ra/esse/models/properties_directory/non_scalar/phonon_dispersions.py +2 -2
  52. mat3ra/esse/models/properties_directory/non_scalar/phonon_dos.py +2 -2
  53. mat3ra/esse/models/properties_directory/non_scalar/total_energy_contributions.py +50 -50
  54. mat3ra/esse/models/properties_directory/non_scalar/vibrational_spectrum.py +2 -2
  55. mat3ra/esse/models/properties_directory/scalar/electron_affinity.py +2 -2
  56. mat3ra/esse/models/properties_directory/scalar/fermi_energy.py +2 -2
  57. mat3ra/esse/models/properties_directory/scalar/formation_energy.py +2 -2
  58. mat3ra/esse/models/properties_directory/scalar/ionization_potential.py +2 -2
  59. mat3ra/esse/models/properties_directory/scalar/reaction_energy_barrier.py +2 -2
  60. mat3ra/esse/models/properties_directory/scalar/surface_energy.py +2 -2
  61. mat3ra/esse/models/properties_directory/scalar/total_energy.py +2 -2
  62. mat3ra/esse/models/properties_directory/scalar/valence_band_offset.py +2 -2
  63. mat3ra/esse/models/properties_directory/scalar/zero_point_energy.py +2 -2
  64. mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +4 -4
  65. mat3ra/esse/models/properties_directory/workflow/convergence/ionic.py +2 -2
  66. {mat3ra_esse-2025.5.17.post0.dist-info → mat3ra_esse-2025.5.17.post2.dist-info}/METADATA +1 -1
  67. {mat3ra_esse-2025.5.17.post0.dist-info → mat3ra_esse-2025.5.17.post2.dist-info}/RECORD +77 -58
  68. mat3ra/esse/models/materials_category/defects/enums/atom_placement_method.py +0 -22
  69. mat3ra/esse/models/materials_category/defects/enums/complex_defect_type.py +0 -18
  70. mat3ra/esse/models/materials_category/defects/enums/coordinates_shape.py +0 -21
  71. mat3ra/esse/models/materials_category/defects/enums/slab_defect_type.py +0 -19
  72. mat3ra/esse/models/materials_category/defects/enums.py +0 -13
  73. mat3ra/esse/models/materials_category/defects/zero_dimensional/defect_pair/configuration.py +0 -1026
  74. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/base_configuration.py +0 -30
  75. /mat3ra/esse/models/{materials_category/defects/by_host/two_dimensional → core/reusable/coordinate_conditions}/__init__.py +0 -0
  76. /mat3ra/esse/models/{materials_category/defects/slab → material/reusable/coordinate_conditions}/__init__.py +0 -0
  77. /mat3ra/esse/models/{materials_category/defects/two_dimensional/slab_grain_boundary → material/reusable/stack}/__init__.py +0 -0
  78. /mat3ra/esse/models/{materials_category/defects/zero_dimensional/adatom → material/reusable/supercell}/__init__.py +0 -0
  79. /mat3ra/esse/models/materials_category/defects/{zero_dimensional/complex → by_host/two_dimensional/layered}/__init__.py +0 -0
  80. /mat3ra/esse/models/materials_category/defects/{zero_dimensional/defect_pair → by_host/two_dimensional/point}/__init__.py +0 -0
  81. /mat3ra/esse/models/materials_category/defects/{zero_dimensional/slab → two_dimensional/grain_boundary_plane}/__init__.py +0 -0
  82. {mat3ra_esse-2025.5.17.post0.dist-info → mat3ra_esse-2025.5.17.post2.dist-info}/WHEEL +0 -0
  83. {mat3ra_esse-2025.5.17.post0.dist-info → mat3ra_esse-2025.5.17.post2.dist-info}/licenses/LICENSE.md +0 -0
  84. {mat3ra_esse-2025.5.17.post0.dist-info → mat3ra_esse-2025.5.17.post2.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,5 @@
1
1
  # generated by datamodel-codegen:
2
- # filename: materials_category/defects/zero_dimensional/adatom/base_configuration.json
2
+ # filename: material/reusable/slab_configuration_with_termination.json
3
3
  # version: 0.28.5
4
4
 
5
5
  from __future__ import annotations
@@ -7,13 +7,139 @@ from __future__ import annotations
7
7
  from enum import Enum
8
8
  from typing import Any, Dict, List, Literal, Optional, Union
9
9
 
10
- from pydantic import BaseModel, Field, RootModel, confloat, conint
10
+ from pydantic import BaseModel, Field, RootModel, confloat, conint, constr
11
+
12
+
13
+ class Value(Enum):
14
+ H = "H"
15
+ He = "He"
16
+ Li = "Li"
17
+ Be = "Be"
18
+ B = "B"
19
+ C = "C"
20
+ N = "N"
21
+ O = "O"
22
+ F = "F"
23
+ Ne = "Ne"
24
+ Na = "Na"
25
+ Mg = "Mg"
26
+ Al = "Al"
27
+ Si = "Si"
28
+ P = "P"
29
+ S = "S"
30
+ Cl = "Cl"
31
+ Ar = "Ar"
32
+ K = "K"
33
+ Ca = "Ca"
34
+ Sc = "Sc"
35
+ Ti = "Ti"
36
+ V = "V"
37
+ Cr = "Cr"
38
+ Mn = "Mn"
39
+ Fe = "Fe"
40
+ Co = "Co"
41
+ Ni = "Ni"
42
+ Cu = "Cu"
43
+ Zn = "Zn"
44
+ Ga = "Ga"
45
+ Ge = "Ge"
46
+ As = "As"
47
+ Se = "Se"
48
+ Br = "Br"
49
+ Kr = "Kr"
50
+ Rb = "Rb"
51
+ Sr = "Sr"
52
+ Y = "Y"
53
+ Zr = "Zr"
54
+ Nb = "Nb"
55
+ Mo = "Mo"
56
+ Tc = "Tc"
57
+ Ru = "Ru"
58
+ Rh = "Rh"
59
+ Pd = "Pd"
60
+ Ag = "Ag"
61
+ Cd = "Cd"
62
+ In = "In"
63
+ Sn = "Sn"
64
+ Sb = "Sb"
65
+ Te = "Te"
66
+ I = "I"
67
+ Xe = "Xe"
68
+ Cs = "Cs"
69
+ Ba = "Ba"
70
+ La = "La"
71
+ Ce = "Ce"
72
+ Pr = "Pr"
73
+ Nd = "Nd"
74
+ Pm = "Pm"
75
+ Sm = "Sm"
76
+ Eu = "Eu"
77
+ Gd = "Gd"
78
+ Tb = "Tb"
79
+ Dy = "Dy"
80
+ Ho = "Ho"
81
+ Er = "Er"
82
+ Tm = "Tm"
83
+ Yb = "Yb"
84
+ Lu = "Lu"
85
+ Hf = "Hf"
86
+ Ta = "Ta"
87
+ W = "W"
88
+ Re = "Re"
89
+ Os = "Os"
90
+ Ir = "Ir"
91
+ Pt = "Pt"
92
+ Au = "Au"
93
+ Hg = "Hg"
94
+ Tl = "Tl"
95
+ Pb = "Pb"
96
+ Bi = "Bi"
97
+ Po = "Po"
98
+ At = "At"
99
+ Rn = "Rn"
100
+ Fr = "Fr"
101
+ Ra = "Ra"
102
+ Ac = "Ac"
103
+ Th = "Th"
104
+ Pa = "Pa"
105
+ U = "U"
106
+ Np = "Np"
107
+ Pu = "Pu"
108
+ Am = "Am"
109
+ Cm = "Cm"
110
+ Bk = "Bk"
111
+ Cf = "Cf"
112
+ Es = "Es"
113
+ Fm = "Fm"
114
+ Md = "Md"
115
+ No = "No"
116
+ Lr = "Lr"
117
+ Rf = "Rf"
118
+ Db = "Db"
119
+ Sg = "Sg"
120
+ Bh = "Bh"
121
+ Hs = "Hs"
122
+ Mt = "Mt"
123
+ Ds = "Ds"
124
+ Rg = "Rg"
125
+ Cn = "Cn"
126
+ Nh = "Nh"
127
+ Fl = "Fl"
128
+ Mc = "Mc"
129
+ Lv = "Lv"
130
+ Ts = "Ts"
131
+ Og = "Og"
132
+
133
+
134
+ class Value51(Enum):
135
+ X = "X"
136
+ Vac = "Vac"
11
137
 
12
138
 
13
139
  class AtomicElementSchema(BaseModel):
14
- value: str
140
+ value: Union[Value, Value51]
15
141
  """
16
- value of this entry
142
+ All elements, including extra elements
17
143
  """
18
144
  id: int
19
145
  """
@@ -159,30 +285,30 @@ class VolumeSchema(BaseModel):
159
285
  value: float
160
286
 
161
287
 
162
- class Name7(Enum):
288
+ class Name205(Enum):
163
289
  density = "density"
164
290
 
165
291
 
166
- class Units9(Enum):
292
+ class Units99(Enum):
167
293
  g_cm_3 = "g/cm^3"
168
294
 
169
295
 
170
296
  class DensitySchema(BaseModel):
171
297
  name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
172
- units: Optional[Units9] = None
298
+ units: Optional[Units99] = None
173
299
  value: float
174
300
 
175
301
 
176
- class Units10(Enum):
302
+ class Units100(Enum):
177
303
  angstrom = "angstrom"
178
304
 
179
305
 
180
306
  class ScalarSchema(BaseModel):
181
- units: Optional[Units10] = None
307
+ units: Optional[Units100] = None
182
308
  value: float
183
309
 
184
310
 
185
- class Name8(Enum):
311
+ class Name206(Enum):
186
312
  symmetry = "symmetry"
187
313
 
188
314
 
@@ -202,7 +328,7 @@ class SymmetrySchema(BaseModel):
202
328
  name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
203
329
 
204
330
 
205
- class Name9(Enum):
331
+ class Name207(Enum):
206
332
  elemental_ratio = "elemental_ratio"
207
333
 
208
334
 
@@ -215,7 +341,7 @@ class ElementalRatio(BaseModel):
215
341
  """
216
342
 
217
343
 
218
- class Name10(Enum):
344
+ class Name208(Enum):
219
345
  p_norm = "p-norm"
220
346
 
221
347
 
@@ -228,7 +354,7 @@ class PNorm(BaseModel):
228
354
  value: float
229
355
 
230
356
 
231
- class Name11(Enum):
357
+ class Name209(Enum):
232
358
  inchi = "inchi"
233
359
 
234
360
 
@@ -237,7 +363,7 @@ class InChIRepresentationSchema(BaseModel):
237
363
  value: str
238
364
 
239
365
 
240
- class Name12(Enum):
366
+ class Name210(Enum):
241
367
  inchi_key = "inchi_key"
242
368
 
243
369
 
@@ -316,7 +442,7 @@ class FileSourceSchema(BaseModel):
316
442
  """
317
443
 
318
444
 
319
- class Name13(Enum):
445
+ class Name211(Enum):
320
446
  default = "default"
321
447
  atomsTooClose = "atomsTooClose"
322
448
  atomsOverlap = "atomsOverlap"
@@ -329,7 +455,7 @@ class Severity(Enum):
329
455
 
330
456
 
331
457
  class MaterialConsistencyCheckSchema(BaseModel):
332
- name: Name13
458
+ name: Name211
333
459
  """
334
460
  Name of the consistency check that is performed, which is listed in an enum.
335
461
  """
@@ -404,15 +530,183 @@ class MaterialSchema(BaseModel):
404
530
  metadata: Optional[Dict[str, Any]] = None
405
531
 
406
532
 
407
- class AdatomConfigurationWithoutCrystalSchema(BaseModel):
408
- crystal: Optional[MaterialSchema] = Field(None, title="material schema")
409
- defect_type: Literal["adatom"] = "adatom"
410
- position_on_surface: List[float] = Field(..., max_length=2, min_length=2, title="coordinate 2d schema")
411
- distance_z: confloat(ge=0.0)
533
+ class SupercellMatrix2DSchemaItem(RootModel[List[int]]):
534
+ root: List[int]
535
+
536
+
537
+ class SlabConfigurationSchema(BaseModel):
538
+ bulk: Optional[MaterialSchema] = Field(None, title="material schema")
539
+ miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema")
540
+ """
541
+ Miller indices for crystallographic plane designation
542
+ """
543
+ number_of_layers: Optional[conint(ge=1)] = Field(1, title="Number of Layers Schema")
544
+ """
545
+ Number of atomic layers in a structural component
546
+ """
547
+ vacuum: Optional[confloat(ge=0.0)] = Field(5, title="Vacuum Thickness Schema")
548
+ """
549
+ Vacuum thickness in Angstroms
550
+ """
551
+ xy_supercell_matrix: Optional[List[SupercellMatrix2DSchemaItem]] = Field(
552
+ default_factory=lambda: [SupercellMatrix2DSchemaItem.model_validate(v) for v in [[1, 0], [0, 1]]],
553
+ max_length=2,
554
+ min_length=2,
555
+ title="Supercell Matrix 2D Schema",
556
+ )
557
+ """
558
+ Supercell matrix for xy plane transformations
559
+ """
560
+ use_conventional_cell: Optional[bool] = Field(True, title="Use Conventional Cell")
561
+ """
562
+ Whether to use conventional cell when generating the slab.
563
+ """
564
+ use_orthogonal_z: Optional[bool] = Field(True, title="Use Orthogonal Z")
565
+ """
566
+ Whether to make vector c orthogonal to ab plane for the slab cell.
567
+ """
568
+
569
+
570
+ class ChemicalElements(Enum):
571
+ H = "H"
572
+ He = "He"
573
+ Li = "Li"
574
+ Be = "Be"
575
+ B = "B"
576
+ C = "C"
577
+ N = "N"
578
+ O = "O"
579
+ F = "F"
580
+ Ne = "Ne"
581
+ Na = "Na"
582
+ Mg = "Mg"
583
+ Al = "Al"
584
+ Si = "Si"
585
+ P = "P"
586
+ S = "S"
587
+ Cl = "Cl"
588
+ Ar = "Ar"
589
+ K = "K"
590
+ Ca = "Ca"
591
+ Sc = "Sc"
592
+ Ti = "Ti"
593
+ V = "V"
594
+ Cr = "Cr"
595
+ Mn = "Mn"
596
+ Fe = "Fe"
597
+ Co = "Co"
598
+ Ni = "Ni"
599
+ Cu = "Cu"
600
+ Zn = "Zn"
601
+ Ga = "Ga"
602
+ Ge = "Ge"
603
+ As = "As"
604
+ Se = "Se"
605
+ Br = "Br"
606
+ Kr = "Kr"
607
+ Rb = "Rb"
608
+ Sr = "Sr"
609
+ Y = "Y"
610
+ Zr = "Zr"
611
+ Nb = "Nb"
612
+ Mo = "Mo"
613
+ Tc = "Tc"
614
+ Ru = "Ru"
615
+ Rh = "Rh"
616
+ Pd = "Pd"
617
+ Ag = "Ag"
618
+ Cd = "Cd"
619
+ In = "In"
620
+ Sn = "Sn"
621
+ Sb = "Sb"
622
+ Te = "Te"
623
+ I = "I"
624
+ Xe = "Xe"
625
+ Cs = "Cs"
626
+ Ba = "Ba"
627
+ La = "La"
628
+ Ce = "Ce"
629
+ Pr = "Pr"
630
+ Nd = "Nd"
631
+ Pm = "Pm"
632
+ Sm = "Sm"
633
+ Eu = "Eu"
634
+ Gd = "Gd"
635
+ Tb = "Tb"
636
+ Dy = "Dy"
637
+ Ho = "Ho"
638
+ Er = "Er"
639
+ Tm = "Tm"
640
+ Yb = "Yb"
641
+ Lu = "Lu"
642
+ Hf = "Hf"
643
+ Ta = "Ta"
644
+ W = "W"
645
+ Re = "Re"
646
+ Os = "Os"
647
+ Ir = "Ir"
648
+ Pt = "Pt"
649
+ Au = "Au"
650
+ Hg = "Hg"
651
+ Tl = "Tl"
652
+ Pb = "Pb"
653
+ Bi = "Bi"
654
+ Po = "Po"
655
+ At = "At"
656
+ Rn = "Rn"
657
+ Fr = "Fr"
658
+ Ra = "Ra"
659
+ Ac = "Ac"
660
+ Th = "Th"
661
+ Pa = "Pa"
662
+ U = "U"
663
+ Np = "Np"
664
+ Pu = "Pu"
665
+ Am = "Am"
666
+ Cm = "Cm"
667
+ Bk = "Bk"
668
+ Cf = "Cf"
669
+ Es = "Es"
670
+ Fm = "Fm"
671
+ Md = "Md"
672
+ No = "No"
673
+ Lr = "Lr"
674
+ Rf = "Rf"
675
+ Db = "Db"
676
+ Sg = "Sg"
677
+ Bh = "Bh"
678
+ Hs = "Hs"
679
+ Mt = "Mt"
680
+ Ds = "Ds"
681
+ Rg = "Rg"
682
+ Cn = "Cn"
683
+ Nh = "Nh"
684
+ Fl = "Fl"
685
+ Mc = "Mc"
686
+ Lv = "Lv"
687
+ Ts = "Ts"
688
+ Og = "Og"
689
+
690
+
691
+ class TerminationSchema(BaseModel):
692
+ chemical_elements: Union[ChemicalElements, constr(pattern=r"^[A-Z][a-z]?([A-Z][a-z]?)*$")] = Field(
693
+ ..., title="Chemical Elements"
694
+ )
695
+ """
696
+ Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')
697
+ """
698
+ space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label")
699
+ """
700
+ Space group symmetry designation for the termination
701
+ """
702
+
703
+
704
+ class SlabConfigurationWithTerminationSchema(BaseModel):
705
+ slab_configuration: SlabConfigurationSchema = Field(..., title="Slab Configuration Schema")
412
706
  """
413
- Distance from the surface in Angstroms
707
+ Configuration for creating a slab from a bulk material
414
708
  """
415
- chemical_element: str
709
+ termination: TerminationSchema = Field(..., title="Termination Schema")
416
710
  """
417
- Chemical element of the adatom
711
+ Defines a specific termination of a slab
418
712
  """