mat3ra-esse 2025.5.13.post0__py3-none-any.whl → 2025.5.16.post1__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 (74) 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/apse/materials/builders/slab/pymatgen/__init__.py +3 -0
  5. mat3ra/esse/models/apse/materials/builders/slab/pymatgen/parameters.py +28 -0
  6. mat3ra/esse/models/core/reusable/energy.py +2 -2
  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/base/__init__.py +3 -0
  12. mat3ra/esse/models/material/builders/base/selector_parameters.py +16 -0
  13. mat3ra/esse/models/material/builders/single_material/two_dimensional/slab/__init__.py +3 -0
  14. mat3ra/esse/models/material/builders/single_material/two_dimensional/slab/builder_parameters.py +28 -0
  15. mat3ra/esse/models/material/builders/single_material/two_dimensional/slab/selector_parameters.py +151 -0
  16. mat3ra/esse/models/material/reusable/slab/enums/__init__.py +3 -0
  17. mat3ra/esse/models/material/reusable/slab/enums/exposed_face.py +13 -0
  18. mat3ra/esse/models/material/reusable/slab/number_of_layers.py +1 -1
  19. mat3ra/esse/models/material/reusable/slab/termination.py +129 -3
  20. mat3ra/esse/models/material/reusable/slab/vacuum.py +2 -2
  21. mat3ra/esse/models/materials_category/defects/__init__.py +3 -0
  22. mat3ra/esse/models/materials_category/defects/configuration.py +538 -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/defect_pair/__init__.py +3 -0
  42. mat3ra/esse/models/materials_category/defects/zero_dimensional/defect_pair/configuration.py +1026 -0
  43. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/__init__.py +3 -0
  44. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/base_configuration.py +30 -0
  45. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/configuration.py +672 -0
  46. mat3ra/esse/models/materials_category/defects/zero_dimensional/slab/__init__.py +3 -0
  47. mat3ra/esse/models/materials_category/defects/zero_dimensional/slab/configuration.py +434 -0
  48. mat3ra/esse/models/materials_category/single_material/two_dimensional/slab/configuration.py +142 -16
  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/basis/__init__.py +128 -2
  65. mat3ra/esse/models/properties_directory/structural/basis/atomic_element.py +131 -2
  66. mat3ra/esse/models/properties_directory/structural/basis/atomic_elements.py +130 -3
  67. mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +4 -4
  68. mat3ra/esse/models/properties_directory/workflow/convergence/ionic.py +2 -2
  69. {mat3ra_esse-2025.5.13.post0.dist-info → mat3ra_esse-2025.5.16.post1.dist-info}/METADATA +1 -1
  70. {mat3ra_esse-2025.5.13.post0.dist-info → mat3ra_esse-2025.5.16.post1.dist-info}/RECORD +73 -36
  71. {mat3ra_esse-2025.5.13.post0.dist-info → mat3ra_esse-2025.5.16.post1.dist-info}/WHEEL +1 -1
  72. mat3ra/esse/models/material/reusable/slab/thickness.py +0 -16
  73. {mat3ra_esse-2025.5.13.post0.dist-info → mat3ra_esse-2025.5.16.post1.dist-info}/licenses/LICENSE.md +0 -0
  74. {mat3ra_esse-2025.5.13.post0.dist-info → mat3ra_esse-2025.5.16.post1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,151 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: material/builders/single_material/two_dimensional/slab/selector_parameters.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+ from typing import Optional, Union
9
+
10
+ from pydantic import BaseModel, Field, constr
11
+
12
+
13
+ class ChemicalElements(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 TerminationSchema(BaseModel):
135
+ chemical_elements: Union[ChemicalElements, constr(pattern=r"^[A-Z][a-z]?([A-Z][a-z]?)*$")] = Field(
136
+ ..., title="Chemical Elements"
137
+ )
138
+ """
139
+ Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')
140
+ """
141
+ space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label")
142
+ """
143
+ Space group symmetry designation for the termination
144
+ """
145
+
146
+
147
+ class SlabSelectorParametersSchema(BaseModel):
148
+ termination: Optional[TerminationSchema] = Field(None, title="Termination Schema")
149
+ """
150
+ Defines a specific termination of a slab
151
+ """
@@ -0,0 +1,3 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: schema
3
+ # version: 0.28.5
@@ -0,0 +1,13 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: material/reusable/slab/enums/exposed_face.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+
9
+
10
+ class SlabExposedFaceEnum(Enum):
11
+ top = "top"
12
+ bottom = "bottom"
13
+ both = "both"
@@ -10,7 +10,7 @@ from pydantic import Field, RootModel, conint
10
10
 
11
11
 
12
12
  class NumberOfLayersSchema(RootModel[Optional[conint(ge=1)]]):
13
- root: Optional[conint(ge=1)] = Field(1, title="number_of_layers Schema")
13
+ root: Optional[conint(ge=1)] = Field(1, title="Number of Layers Schema")
14
14
  """
15
15
  Number of atomic layers in a structural component
16
16
  """
@@ -4,13 +4,139 @@
4
4
 
5
5
  from __future__ import annotations
6
6
 
7
- from pydantic import BaseModel, Field
7
+ from enum import Enum
8
+ from typing import Union
9
+
10
+ from pydantic import BaseModel, Field, constr
11
+
12
+
13
+ class ChemicalElements(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"
8
132
 
9
133
 
10
134
  class TerminationSchema(BaseModel):
11
- chemical_elements: str = Field(..., title="Chemical Elements")
135
+ chemical_elements: Union[ChemicalElements, constr(pattern=r"^[A-Z][a-z]?([A-Z][a-z]?)*$")] = Field(
136
+ ..., title="Chemical Elements"
137
+ )
12
138
  """
13
- Chemical elements at the termination
139
+ Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')
14
140
  """
15
141
  space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label")
16
142
  """
@@ -9,8 +9,8 @@ from typing import Optional
9
9
  from pydantic import Field, RootModel, confloat
10
10
 
11
11
 
12
- class VacuumSchema(RootModel[Optional[confloat(ge=0.0)]]):
13
- root: Optional[confloat(ge=0.0)] = Field(5, title="Vacuum Schema")
12
+ class VacuumThicknessSchema(RootModel[Optional[confloat(ge=0.0)]]):
13
+ root: Optional[confloat(ge=0.0)] = Field(5, title="Vacuum Thickness Schema")
14
14
  """
15
15
  Vacuum thickness in Angstroms
16
16
  """
@@ -0,0 +1,3 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: schema
3
+ # version: 0.28.5