mat3ra-esse 2025.5.17.post1__py3-none-any.whl → 2025.6.5.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 (125) 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/apse/materials/builders/slab/pymatgen/parameters.py +3 -3
  5. mat3ra/esse/models/coordinates_shape_enum.py +15 -0
  6. mat3ra/esse/models/core/primitive/array_of_3_integers.py +13 -0
  7. mat3ra/esse/models/core/reusable/axis_enum.py +13 -0
  8. mat3ra/esse/models/core/reusable/coordinate_conditions/__init__.py +31 -0
  9. mat3ra/esse/models/core/reusable/coordinate_conditions/base.py +21 -0
  10. mat3ra/esse/models/core/reusable/coordinate_conditions/box.py +24 -0
  11. mat3ra/esse/models/core/reusable/coordinate_conditions/cylinder.py +26 -0
  12. mat3ra/esse/models/core/reusable/coordinate_conditions/enum.py +15 -0
  13. mat3ra/esse/models/core/reusable/coordinate_conditions/plane.py +24 -0
  14. mat3ra/esse/models/core/reusable/coordinate_conditions/sphere.py +24 -0
  15. mat3ra/esse/models/core/reusable/coordinate_conditions/triangular_prism.py +27 -0
  16. mat3ra/esse/models/core/reusable/energy.py +2 -2
  17. mat3ra/esse/models/element.py +6 -6
  18. mat3ra/esse/models/material/__init__.py +14 -14
  19. mat3ra/esse/models/material/reusable/coordinate_conditions/base.py +21 -0
  20. mat3ra/esse/models/material/reusable/coordinate_conditions/box.py +24 -0
  21. mat3ra/esse/models/material/reusable/coordinate_conditions/cylinder.py +26 -0
  22. mat3ra/esse/models/material/reusable/coordinate_conditions/plane.py +24 -0
  23. mat3ra/esse/models/material/reusable/coordinate_conditions/sphere.py +24 -0
  24. mat3ra/esse/models/material/reusable/coordinate_conditions/triangular_prism.py +27 -0
  25. mat3ra/esse/models/material/reusable/slab/slab_configuration_with_termination.py +589 -0
  26. mat3ra/esse/models/material/reusable/slab/slab_with_termination.py +593 -0
  27. mat3ra/esse/models/material/reusable/slab/two_slabs_stack.py +618 -0
  28. mat3ra/esse/models/material/reusable/slab_configuration_with_termination.py +712 -0
  29. mat3ra/esse/models/material/reusable/stack/slab_configuration_with_termination.py +593 -0
  30. mat3ra/esse/models/material/reusable/stack/slab_in_stack.py +720 -0
  31. mat3ra/esse/models/material/reusable/stack/stack_of_slabs.py +737 -0
  32. mat3ra/esse/models/material/reusable/stack/stack_of_two_slabs.py +737 -0
  33. mat3ra/esse/models/material/reusable/supercell/supercell_matrix_2d.py +25 -0
  34. mat3ra/esse/models/material/reusable/supercell/supercell_matrix_3d.py +27 -0
  35. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/adatom/configuration.py +14 -14
  36. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/layered/configuration.py +14 -14
  37. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/point/configuration.py +14 -14
  38. mat3ra/esse/models/materials_category/defects/configuration.py +14 -14
  39. mat3ra/esse/models/materials_category/defects/one_dimensional/terrace/configuration.py +14 -14
  40. mat3ra/esse/models/materials_category/defects/{zero_dimensional/complex/pair.py → two_dimensional/grain_boundary_plane/configuration.py} +163 -497
  41. mat3ra/esse/models/materials_category/defects/two_dimensional/island/condition_json.py +28 -0
  42. mat3ra/esse/models/materials_category/defects/two_dimensional/island/configuration.py +163 -48
  43. mat3ra/esse/models/materials_category/defects/zero_dimensional/complex/pair/configuration.py +130 -130
  44. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/configuration.py +14 -14
  45. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/interstitial/configuration.py +14 -14
  46. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/substitution/configuration.py +14 -14
  47. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/vacancy/configuration.py +14 -14
  48. mat3ra/esse/models/materials_category/multi_material/interfaces/configuration.py +737 -0
  49. mat3ra/esse/models/materials_category/{defects/slab/configuration.py → pristine_structures/three_dimensional/ideal_crystal.py} +142 -24
  50. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab.py +730 -0
  51. mat3ra/esse/models/materials_category/single_material/two_dimensional/slab/configuration.py +17 -21
  52. mat3ra/esse/models/materials_category_components/entities/auxiliary/three_dimensional/__init__.py +3 -0
  53. mat3ra/esse/models/materials_category_components/entities/auxiliary/three_dimensional/supercell_matrix_3d.py +27 -0
  54. mat3ra/esse/models/materials_category_components/entities/auxiliary/two_dimensional/__init__.py +3 -0
  55. mat3ra/esse/models/materials_category_components/entities/auxiliary/two_dimensional/miller_indices.py +16 -0
  56. mat3ra/esse/models/materials_category_components/entities/auxiliary/two_dimensional/supercell_matrix_2d.py +25 -0
  57. mat3ra/esse/models/materials_category_components/entities/auxiliary/two_dimensional/termination.py +144 -0
  58. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/__init__.py +3 -0
  59. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.py +13 -0
  60. mat3ra/esse/models/materials_category_components/entities/core/three_dimensional/__init__.py +3 -0
  61. mat3ra/esse/models/{materials_category/defects/zero_dimensional/slab/configuration.py → materials_category_components/entities/core/three_dimensional/crystal.py} +142 -46
  62. mat3ra/esse/models/materials_category_components/entities/core/three_dimensional/void.py +32 -0
  63. mat3ra/esse/models/materials_category_components/entities/core/two_dimensional/__init__.py +3 -0
  64. mat3ra/esse/models/materials_category_components/entities/core/two_dimensional/vacuum.py +27 -0
  65. mat3ra/esse/models/materials_category_components/entities/core/zero_dimensional/__init__.py +3 -0
  66. mat3ra/esse/models/materials_category_components/entities/core/zero_dimensional/atom.py +134 -0
  67. mat3ra/esse/models/materials_category_components/entities/reusable/__init__.py +3 -0
  68. mat3ra/esse/models/materials_category_components/entities/reusable/repetitions.py +25 -0
  69. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/__init__.py +3 -0
  70. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.py +544 -0
  71. mat3ra/esse/models/{materials_category/defects/zero_dimensional/adatom/base_configuration.py → materials_category_components/entities/reusable/three_dimensional/strained_uniform.py} +147 -24
  72. mat3ra/esse/models/{materials_category/defects/zero_dimensional/adatom/configuration.py → materials_category_components/entities/reusable/three_dimensional/supercell.py} +150 -26
  73. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/__init__.py +3 -0
  74. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/atomic_layers.py +683 -0
  75. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique.py +683 -0
  76. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated.py +687 -0
  77. mat3ra/esse/models/{materials_category/defects/by_host/two_dimensional/configuration.py → materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.py} +23 -28
  78. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/slab_unit_cell.py +717 -0
  79. mat3ra/esse/models/materials_category_components/operations/core/combinations/__init__.py +3 -0
  80. mat3ra/esse/models/materials_category_components/operations/core/combinations/merge.py +583 -0
  81. mat3ra/esse/models/materials_category_components/operations/core/combinations/stack.py +555 -0
  82. mat3ra/esse/models/materials_category_components/operations/core/combinations/stack_component.py +554 -0
  83. mat3ra/esse/models/materials_category_components/operations/core/modifications/__init__.py +3 -0
  84. mat3ra/esse/models/materials_category_components/operations/core/modifications/repeat.py +27 -0
  85. mat3ra/esse/models/materials_category_components/operations/core/modifications/strain.py +19 -0
  86. mat3ra/esse/models/properties_directory/derived_properties.py +11 -11
  87. mat3ra/esse/models/properties_directory/non_scalar/average_potential_profile.py +2 -2
  88. mat3ra/esse/models/properties_directory/non_scalar/band_structure.py +2 -2
  89. mat3ra/esse/models/properties_directory/non_scalar/density_of_states.py +2 -2
  90. mat3ra/esse/models/properties_directory/non_scalar/phonon_dispersions.py +2 -2
  91. mat3ra/esse/models/properties_directory/non_scalar/phonon_dos.py +2 -2
  92. mat3ra/esse/models/properties_directory/non_scalar/total_energy_contributions.py +50 -50
  93. mat3ra/esse/models/properties_directory/non_scalar/vibrational_spectrum.py +2 -2
  94. mat3ra/esse/models/properties_directory/scalar/electron_affinity.py +2 -2
  95. mat3ra/esse/models/properties_directory/scalar/fermi_energy.py +2 -2
  96. mat3ra/esse/models/properties_directory/scalar/formation_energy.py +2 -2
  97. mat3ra/esse/models/properties_directory/scalar/ionization_potential.py +2 -2
  98. mat3ra/esse/models/properties_directory/scalar/reaction_energy_barrier.py +2 -2
  99. mat3ra/esse/models/properties_directory/scalar/surface_energy.py +2 -2
  100. mat3ra/esse/models/properties_directory/scalar/total_energy.py +2 -2
  101. mat3ra/esse/models/properties_directory/scalar/valence_band_offset.py +2 -2
  102. mat3ra/esse/models/properties_directory/scalar/zero_point_energy.py +2 -2
  103. mat3ra/esse/models/properties_directory/structural/basis/__init__.py +2 -2
  104. mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +4 -4
  105. mat3ra/esse/models/properties_directory/workflow/convergence/ionic.py +2 -2
  106. {mat3ra_esse-2025.5.17.post1.dist-info → mat3ra_esse-2025.6.5.post0.dist-info}/METADATA +1 -1
  107. {mat3ra_esse-2025.5.17.post1.dist-info → mat3ra_esse-2025.6.5.post0.dist-info}/RECORD +117 -65
  108. {mat3ra_esse-2025.5.17.post1.dist-info → mat3ra_esse-2025.6.5.post0.dist-info}/WHEEL +1 -1
  109. mat3ra/esse/models/materials_category/defects/enums/atom_placement_method.py +0 -22
  110. mat3ra/esse/models/materials_category/defects/enums/complex_defect_type.py +0 -18
  111. mat3ra/esse/models/materials_category/defects/enums/coordinates_shape.py +0 -21
  112. mat3ra/esse/models/materials_category/defects/enums/slab_defect_type.py +0 -19
  113. mat3ra/esse/models/materials_category/defects/enums.py +0 -13
  114. mat3ra/esse/models/materials_category/defects/two_dimensional/slab_grain_boundary/configuration.py +0 -1105
  115. mat3ra/esse/models/materials_category/defects/zero_dimensional/defect_pair/configuration.py +0 -1026
  116. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/base_configuration.py +0 -30
  117. /mat3ra/esse/models/{materials_category/defects/by_host/two_dimensional → material/reusable/coordinate_conditions}/__init__.py +0 -0
  118. /mat3ra/esse/models/{materials_category/defects/slab → material/reusable/stack}/__init__.py +0 -0
  119. /mat3ra/esse/models/{materials_category/defects/two_dimensional/slab_grain_boundary → material/reusable/supercell}/__init__.py +0 -0
  120. /mat3ra/esse/models/materials_category/defects/{zero_dimensional/adatom → two_dimensional/grain_boundary_plane}/__init__.py +0 -0
  121. /mat3ra/esse/models/materials_category/{defects/zero_dimensional/complex → multi_material/interfaces}/__init__.py +0 -0
  122. /mat3ra/esse/models/materials_category/{defects/zero_dimensional/defect_pair → pristine_structures/three_dimensional}/__init__.py +0 -0
  123. /mat3ra/esse/models/materials_category/{defects/zero_dimensional/slab → pristine_structures/two_dimensional}/__init__.py +0 -0
  124. {mat3ra_esse-2025.5.17.post1.dist-info → mat3ra_esse-2025.6.5.post0.dist-info}/licenses/LICENSE.md +0 -0
  125. {mat3ra_esse-2025.5.17.post1.dist-info → mat3ra_esse-2025.6.5.post0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,28 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: materials_category/defects/two_dimensional/island/condition.json.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+ from typing import List, Literal
9
+
10
+ from pydantic import BaseModel, Field, RootModel
11
+
12
+
13
+ class CoordinateShapeEnum(Enum):
14
+ cylinder = "cylinder"
15
+ sphere = "sphere"
16
+ box = "box"
17
+ triangular_prism = "triangular_prism"
18
+ plane = "plane"
19
+
20
+
21
+ class BoxCoordinateConditionSchema(BaseModel):
22
+ shape: Literal["box"] = Field(..., title="Coordinate Shape Enum")
23
+ min_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
24
+ max_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
25
+
26
+
27
+ class ESSE(RootModel[BoxCoordinateConditionSchema]):
28
+ root: BoxCoordinateConditionSchema
@@ -10,42 +10,150 @@ from typing import Any, Dict, List, Literal, Optional, Union
10
10
  from pydantic import BaseModel, Field, RootModel, confloat, conint
11
11
 
12
12
 
13
- class Shape(Enum):
14
- sphere = "sphere"
13
+ class CoordinateShapeEnum(Enum):
15
14
  cylinder = "cylinder"
16
- rectangle = "rectangle"
15
+ sphere = "sphere"
16
+ box = "box"
17
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")
18
+ plane = "plane"
19
+
20
+
21
+ class BoxCoordinateConditionSchema(BaseModel):
22
+ shape: Literal["box"] = Field(..., title="Coordinate Shape Enum")
23
+ min_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
24
+ max_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
25
+
26
+
27
+ class Value(Enum):
28
+ H = "H"
29
+ He = "He"
30
+ Li = "Li"
31
+ Be = "Be"
32
+ B = "B"
33
+ C = "C"
34
+ N = "N"
35
+ O = "O"
36
+ F = "F"
37
+ Ne = "Ne"
38
+ Na = "Na"
39
+ Mg = "Mg"
40
+ Al = "Al"
41
+ Si = "Si"
42
+ P = "P"
43
+ S = "S"
44
+ Cl = "Cl"
45
+ Ar = "Ar"
46
+ K = "K"
47
+ Ca = "Ca"
48
+ Sc = "Sc"
49
+ Ti = "Ti"
50
+ V = "V"
51
+ Cr = "Cr"
52
+ Mn = "Mn"
53
+ Fe = "Fe"
54
+ Co = "Co"
55
+ Ni = "Ni"
56
+ Cu = "Cu"
57
+ Zn = "Zn"
58
+ Ga = "Ga"
59
+ Ge = "Ge"
60
+ As = "As"
61
+ Se = "Se"
62
+ Br = "Br"
63
+ Kr = "Kr"
64
+ Rb = "Rb"
65
+ Sr = "Sr"
66
+ Y = "Y"
67
+ Zr = "Zr"
68
+ Nb = "Nb"
69
+ Mo = "Mo"
70
+ Tc = "Tc"
71
+ Ru = "Ru"
72
+ Rh = "Rh"
73
+ Pd = "Pd"
74
+ Ag = "Ag"
75
+ Cd = "Cd"
76
+ In = "In"
77
+ Sn = "Sn"
78
+ Sb = "Sb"
79
+ Te = "Te"
80
+ I = "I"
81
+ Xe = "Xe"
82
+ Cs = "Cs"
83
+ Ba = "Ba"
84
+ La = "La"
85
+ Ce = "Ce"
86
+ Pr = "Pr"
87
+ Nd = "Nd"
88
+ Pm = "Pm"
89
+ Sm = "Sm"
90
+ Eu = "Eu"
91
+ Gd = "Gd"
92
+ Tb = "Tb"
93
+ Dy = "Dy"
94
+ Ho = "Ho"
95
+ Er = "Er"
96
+ Tm = "Tm"
97
+ Yb = "Yb"
98
+ Lu = "Lu"
99
+ Hf = "Hf"
100
+ Ta = "Ta"
101
+ W = "W"
102
+ Re = "Re"
103
+ Os = "Os"
104
+ Ir = "Ir"
105
+ Pt = "Pt"
106
+ Au = "Au"
107
+ Hg = "Hg"
108
+ Tl = "Tl"
109
+ Pb = "Pb"
110
+ Bi = "Bi"
111
+ Po = "Po"
112
+ At = "At"
113
+ Rn = "Rn"
114
+ Fr = "Fr"
115
+ Ra = "Ra"
116
+ Ac = "Ac"
117
+ Th = "Th"
118
+ Pa = "Pa"
119
+ U = "U"
120
+ Np = "Np"
121
+ Pu = "Pu"
122
+ Am = "Am"
123
+ Cm = "Cm"
124
+ Bk = "Bk"
125
+ Cf = "Cf"
126
+ Es = "Es"
127
+ Fm = "Fm"
128
+ Md = "Md"
129
+ No = "No"
130
+ Lr = "Lr"
131
+ Rf = "Rf"
132
+ Db = "Db"
133
+ Sg = "Sg"
134
+ Bh = "Bh"
135
+ Hs = "Hs"
136
+ Mt = "Mt"
137
+ Ds = "Ds"
138
+ Rg = "Rg"
139
+ Cn = "Cn"
140
+ Nh = "Nh"
141
+ Fl = "Fl"
142
+ Mc = "Mc"
143
+ Lv = "Lv"
144
+ Ts = "Ts"
145
+ Og = "Og"
146
+
147
+
148
+ class Value37(Enum):
149
+ X = "X"
150
+ Vac = "Vac"
43
151
 
44
152
 
45
153
  class AtomicElementSchema(BaseModel):
46
- value: str
154
+ value: Union[Value, Value37]
47
155
  """
48
- value of this entry
156
+ All elements, including extra elements
49
157
  """
50
158
  id: int
51
159
  """
@@ -191,30 +299,30 @@ class VolumeSchema(BaseModel):
191
299
  value: float
192
300
 
193
301
 
194
- class Name104(Enum):
302
+ class Name120(Enum):
195
303
  density = "density"
196
304
 
197
305
 
198
- class Units46(Enum):
306
+ class Units52(Enum):
199
307
  g_cm_3 = "g/cm^3"
200
308
 
201
309
 
202
310
  class DensitySchema(BaseModel):
203
311
  name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
204
- units: Optional[Units46] = None
312
+ units: Optional[Units52] = None
205
313
  value: float
206
314
 
207
315
 
208
- class Units47(Enum):
316
+ class Units53(Enum):
209
317
  angstrom = "angstrom"
210
318
 
211
319
 
212
320
  class ScalarSchema(BaseModel):
213
- units: Optional[Units47] = None
321
+ units: Optional[Units53] = None
214
322
  value: float
215
323
 
216
324
 
217
- class Name105(Enum):
325
+ class Name121(Enum):
218
326
  symmetry = "symmetry"
219
327
 
220
328
 
@@ -234,7 +342,7 @@ class SymmetrySchema(BaseModel):
234
342
  name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
235
343
 
236
344
 
237
- class Name106(Enum):
345
+ class Name122(Enum):
238
346
  elemental_ratio = "elemental_ratio"
239
347
 
240
348
 
@@ -247,7 +355,7 @@ class ElementalRatio(BaseModel):
247
355
  """
248
356
 
249
357
 
250
- class Name107(Enum):
358
+ class Name123(Enum):
251
359
  p_norm = "p-norm"
252
360
 
253
361
 
@@ -260,7 +368,7 @@ class PNorm(BaseModel):
260
368
  value: float
261
369
 
262
370
 
263
- class Name108(Enum):
371
+ class Name124(Enum):
264
372
  inchi = "inchi"
265
373
 
266
374
 
@@ -269,7 +377,7 @@ class InChIRepresentationSchema(BaseModel):
269
377
  value: str
270
378
 
271
379
 
272
- class Name109(Enum):
380
+ class Name125(Enum):
273
381
  inchi_key = "inchi_key"
274
382
 
275
383
 
@@ -348,7 +456,7 @@ class FileSourceSchema(BaseModel):
348
456
  """
349
457
 
350
458
 
351
- class Name110(Enum):
459
+ class Name126(Enum):
352
460
  default = "default"
353
461
  atomsTooClose = "atomsTooClose"
354
462
  atomsOverlap = "atomsOverlap"
@@ -361,7 +469,7 @@ class Severity(Enum):
361
469
 
362
470
 
363
471
  class MaterialConsistencyCheckSchema(BaseModel):
364
- name: Name110
472
+ name: Name126
365
473
  """
366
474
  Name of the consistency check that is performed, which is listed in an enum.
367
475
  """
@@ -437,13 +545,20 @@ class MaterialSchema(BaseModel):
437
545
 
438
546
 
439
547
  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
- """
548
+ condition: Optional[BoxCoordinateConditionSchema] = None
445
549
  number_of_added_layers: Optional[conint(ge=1)] = Field(1, title="Number of Layers Schema")
446
550
  """
447
551
  Number of atomic layers in a structural component
448
552
  """
449
- crystal: MaterialSchema = Field(..., title="material schema")
553
+ host: Optional[MaterialSchema] = None
554
+ """
555
+ The base host for the defect
556
+ """
557
+ use_cartesian_coordinates: Optional[bool] = False
558
+ """
559
+ Whether to use Cartesian coordinates
560
+ """
561
+ isExternal: Optional[bool] = False
562
+ """
563
+ Whether the defect is external to the host material
564
+ """