mat3ra-esse 2025.8.20.post0__py3-none-any.whl → 2025.10.8.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 (123) hide show
  1. mat3ra/esse/data/examples.py +1 -1
  2. mat3ra/esse/data/schemas.py +1 -1
  3. mat3ra/esse/models/core/abstract/_2d_data.py +2 -2
  4. mat3ra/esse/models/core/abstract/_2d_plot.py +2 -6
  5. mat3ra/esse/models/core/primitive/_1d_data_series.py +3 -3
  6. mat3ra/esse/models/core/primitive/axis_3d_names_enum.py +13 -0
  7. mat3ra/esse/models/core/reference/__init__.py +8 -8
  8. mat3ra/esse/models/core/reference/exabyte.py +2 -8
  9. mat3ra/esse/models/core/reference/experiment/__init__.py +2 -2
  10. mat3ra/esse/models/core/reusable/coordinate_conditions/__init__.py +1 -78
  11. mat3ra/esse/models/core/reusable/coordinate_conditions/index.py +80 -0
  12. mat3ra/esse/models/core/reusable/hubbard_parameters.py +48 -0
  13. mat3ra/esse/models/core/reusable/kpoint.py +16 -0
  14. mat3ra/esse/models/core/reusable/repetition.py +14 -0
  15. mat3ra/esse/models/definitions/material.py +13 -0
  16. mat3ra/esse/models/element.py +10 -8
  17. mat3ra/esse/models/job/__init__.py +62 -62
  18. mat3ra/esse/models/material/__init__.py +12 -12
  19. mat3ra/esse/models/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.py +80 -80
  20. mat3ra/esse/models/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.py +80 -80
  21. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/adatom/configuration.py +35 -35
  22. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.py +80 -80
  23. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/island/configuration.py +53 -53
  24. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/terrace/configuration.py +53 -53
  25. mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.py +29 -29
  26. mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.py +32 -32
  27. mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/vacancy.py +12 -12
  28. mat3ra/esse/models/materials_category/pristine_structures/three_dimensional/ideal_crystal.py +12 -12
  29. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/nanoribbon.py +52 -52
  30. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/nanotape.py +32 -32
  31. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab.py +32 -32
  32. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.py +32 -32
  33. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab_strained_supercell_with_gap.py +1151 -0
  34. mat3ra/esse/models/materials_category/processed_structures/two_dimensional/passivation/configuration.py +17 -17
  35. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.py +8 -8
  36. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.py +12 -12
  37. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/void_region.py +12 -12
  38. mat3ra/esse/models/materials_category_components/entities/core/three_dimensional/crystal.py +8 -8
  39. mat3ra/esse/models/materials_category_components/entities/core/two_dimensional/vacuum.py +12 -12
  40. mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.py +8 -8
  41. mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.py +8 -8
  42. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/crystal_lattice_base.py +8 -8
  43. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.py +12 -12
  44. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/strained_uniform.py +12 -12
  45. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/supercell.py +12 -12
  46. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.py +8 -8
  47. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.py +52 -52
  48. mat3ra/esse/models/materials_category_components/operations/core/modifications/perturb.py +12 -12
  49. mat3ra/esse/models/methods_directory/physical/psp/__init__.py +2 -2
  50. mat3ra/esse/models/methods_directory/physical/psp/file.py +2 -2
  51. mat3ra/esse/models/methods_directory/physical/psp/file_data_item.py +2 -2
  52. mat3ra/esse/models/properties_directory/derived_properties.py +6 -6
  53. mat3ra/esse/models/properties_directory/elemental/atomic_radius.py +1 -1
  54. mat3ra/esse/models/properties_directory/elemental/electronegativity.py +1 -2
  55. mat3ra/esse/models/properties_directory/elemental/ionization_potential.py +3 -4
  56. mat3ra/esse/models/properties_directory/jupyter_notebook_endpoint.py +20 -0
  57. mat3ra/esse/models/properties_directory/non_scalar/average_potential_profile.py +4 -8
  58. mat3ra/esse/models/properties_directory/non_scalar/band_gaps.py +2 -2
  59. mat3ra/esse/models/properties_directory/non_scalar/band_structure.py +5 -9
  60. mat3ra/esse/models/properties_directory/non_scalar/charge_density_profile.py +4 -8
  61. mat3ra/esse/models/properties_directory/non_scalar/density_of_states.py +5 -8
  62. mat3ra/esse/models/properties_directory/non_scalar/dielectric_tensor.py +2 -2
  63. mat3ra/esse/models/properties_directory/non_scalar/file_content.py +2 -2
  64. mat3ra/esse/models/properties_directory/non_scalar/final_structure.py +22 -0
  65. mat3ra/esse/models/properties_directory/non_scalar/hubbard_u.py +4 -4
  66. mat3ra/esse/models/properties_directory/non_scalar/hubbard_v.py +3 -4
  67. mat3ra/esse/models/properties_directory/non_scalar/hubbard_v_nn.py +3 -4
  68. mat3ra/esse/models/properties_directory/non_scalar/is_relaxed.py +22 -0
  69. mat3ra/esse/models/properties_directory/non_scalar/phonon_dispersions.py +10 -14
  70. mat3ra/esse/models/properties_directory/non_scalar/phonon_dos.py +10 -14
  71. mat3ra/esse/models/properties_directory/non_scalar/potential_profile.py +8 -12
  72. mat3ra/esse/models/properties_directory/non_scalar/reaction_energy_profile.py +8 -12
  73. mat3ra/esse/models/properties_directory/non_scalar/stress_tensor.py +5 -7
  74. mat3ra/esse/models/properties_directory/non_scalar/total_energy_contributions.py +64 -51
  75. mat3ra/esse/models/properties_directory/non_scalar/vibrational_spectrum.py +10 -14
  76. mat3ra/esse/models/properties_directory/non_scalar/workflow.py +2234 -0
  77. mat3ra/esse/models/properties_directory/reusable/__init__.py +3 -0
  78. mat3ra/esse/models/properties_directory/reusable/hubbard_parameters.py +48 -0
  79. mat3ra/esse/models/properties_directory/scalar/electron_affinity.py +1 -1
  80. mat3ra/esse/models/properties_directory/scalar/fermi_energy.py +1 -1
  81. mat3ra/esse/models/properties_directory/scalar/formation_energy.py +1 -1
  82. mat3ra/esse/models/properties_directory/scalar/ionization_potential.py +3 -3
  83. mat3ra/esse/models/properties_directory/scalar/pressure.py +3 -4
  84. mat3ra/esse/models/properties_directory/scalar/reaction_energy_barrier.py +3 -3
  85. mat3ra/esse/models/properties_directory/scalar/surface_energy.py +3 -3
  86. mat3ra/esse/models/properties_directory/scalar/total_energy.py +3 -3
  87. mat3ra/esse/models/properties_directory/scalar/total_force.py +3 -4
  88. mat3ra/esse/models/properties_directory/scalar/valence_band_offset.py +3 -3
  89. mat3ra/esse/models/properties_directory/scalar/zero_point_energy.py +3 -3
  90. mat3ra/esse/models/properties_directory/structural/atomic_forces.py +5 -5
  91. mat3ra/esse/models/properties_directory/structural/basis/atomic_constraints_property.py +3 -3
  92. mat3ra/esse/models/properties_directory/structural/basis/boundary_conditions.py +30 -0
  93. mat3ra/esse/models/properties_directory/structural/basis/predicted_properties.py +82 -0
  94. mat3ra/esse/models/properties_directory/structural/lattice/units/__init__.py +23 -1
  95. mat3ra/esse/models/properties_directory/structural/magnetic_moments.py +5 -5
  96. mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +5 -5
  97. mat3ra/esse/models/properties_directory/structural/patterns/functional_group.py +1 -1
  98. mat3ra/esse/models/properties_directory/structural/patterns/ring.py +1 -1
  99. mat3ra/esse/models/properties_directory/structural/patterns/special_bond.py +1 -1
  100. mat3ra/esse/models/properties_directory/workflow/convergence/electronic.py +4 -4
  101. mat3ra/esse/models/properties_directory/workflow/convergence/ionic.py +6 -6
  102. mat3ra/esse/models/property/base.py +1492 -14
  103. mat3ra/esse/models/property/holder.py +3568 -0
  104. mat3ra/esse/models/property/meta_holder/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/__init__.py +3 -0
  105. mat3ra/esse/models/property/meta_holder/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/g.py +31 -0
  106. mat3ra/esse/models/property/meta_holder.py +140 -0
  107. mat3ra/esse/models/property/proto_holder.py +86 -0
  108. mat3ra/esse/models/property/raw.py +27 -11
  109. mat3ra/esse/models/property/source.py +26 -3
  110. mat3ra/esse/models/workflow/__init__.py +54 -54
  111. mat3ra/esse/models/workflow/base_flow.py +4 -4
  112. mat3ra/esse/models/workflow/subworkflow/__init__.py +13 -13
  113. mat3ra/esse/models/workflow/subworkflow/unit.py +10 -10
  114. mat3ra/esse/models/workflow/unit/__init__.py +12 -12
  115. mat3ra/esse/models/workflow/unit/io/__init__.py +4 -4
  116. mat3ra/esse/models/workflow/unit/io/db.py +2 -2
  117. mat3ra/esse/models/workflow/unit/io/object_storage.py +1 -1
  118. {mat3ra_esse-2025.8.20.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/METADATA +1 -1
  119. {mat3ra_esse-2025.8.20.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/RECORD +122 -103
  120. mat3ra/esse/models/property/meta.py +0 -200
  121. {mat3ra_esse-2025.8.20.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/WHEEL +0 -0
  122. {mat3ra_esse-2025.8.20.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/licenses/LICENSE.md +0 -0
  123. {mat3ra_esse-2025.8.20.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,3 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: schema
3
+ # version: 0.28.5
@@ -0,0 +1,48 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: properties_directory/reusable/hubbard_parameters.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+ from typing import List, Optional
9
+
10
+ from pydantic import BaseModel, constr
11
+
12
+
13
+ class Units(Enum):
14
+ eV = "eV"
15
+
16
+
17
+ class AtomicDataPerOrbitalPairNumeric(BaseModel):
18
+ id: int
19
+ """
20
+ Site number or index in the lattice
21
+ """
22
+ id2: int
23
+ """
24
+ Site number or index in the lattice of second site
25
+ """
26
+ atomicSpecies: constr(pattern=r"^[a-zA-Z]{1,2}[\d+]?$")
27
+ """
28
+ Example: Co1, Mn
29
+ """
30
+ atomicSpecies2: constr(pattern=r"^[a-zA-Z]{1,2}[\d+]?$")
31
+ """
32
+ Example: Co2, O
33
+ """
34
+ orbitalName: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None
35
+ orbitalName2: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None
36
+ distance: Optional[float] = None
37
+ """
38
+ Distance between two sites in Bohr.
39
+ """
40
+ value: float
41
+ """
42
+ Value related to a specific property, e.g., Hubbard U, V etc.
43
+ """
44
+
45
+
46
+ class HubbardParametersReusableSchema(BaseModel):
47
+ units: Units
48
+ values: List[AtomicDataPerOrbitalPairNumeric]
@@ -28,7 +28,7 @@ class Units181(Enum):
28
28
  eV_A_2 = "eV/A^2"
29
29
 
30
30
 
31
- class ElectronAffinitySchema(BaseModel):
31
+ class ElectronAffinityPropertySchema(BaseModel):
32
32
  name: Name
33
33
  units: Union[Units, Units181]
34
34
  value: float
@@ -28,7 +28,7 @@ class Units188(Enum):
28
28
  eV_A_2 = "eV/A^2"
29
29
 
30
30
 
31
- class FermiEnergySchema(BaseModel):
31
+ class FermiEnergyPropertySchema(BaseModel):
32
32
  name: Name
33
33
  units: Union[Units, Units188]
34
34
  value: float
@@ -28,7 +28,7 @@ class Units190(Enum):
28
28
  eV_A_2 = "eV/A^2"
29
29
 
30
30
 
31
- class FormationEnergySchema(BaseModel):
31
+ class FormationEnergyPropertySchema(BaseModel):
32
32
  name: Name
33
33
  units: Union[Units, Units190]
34
34
  value: float
@@ -24,11 +24,11 @@ class Units(Enum):
24
24
  eV_atom = "eV/atom"
25
25
 
26
26
 
27
- class Units207(Enum):
27
+ class Units248(Enum):
28
28
  eV_A_2 = "eV/A^2"
29
29
 
30
30
 
31
- class IonizationPotentialSchema(BaseModel):
31
+ class IonizationPotentialScalarPropertySchema(BaseModel):
32
32
  name: Name
33
- units: Union[Units, Units207]
33
+ units: Union[Units, Units248]
34
34
  value: float
@@ -5,7 +5,6 @@
5
5
  from __future__ import annotations
6
6
 
7
7
  from enum import Enum
8
- from typing import Optional
9
8
 
10
9
  from pydantic import BaseModel
11
10
 
@@ -19,7 +18,7 @@ class Units(Enum):
19
18
  pa = "pa"
20
19
 
21
20
 
22
- class Pressure(BaseModel):
23
- name: Optional[Name] = None
24
- units: Optional[Units] = None
21
+ class PressurePropertySchema(BaseModel):
22
+ name: Name
23
+ units: Units
25
24
  value: float
@@ -24,11 +24,11 @@ class Units(Enum):
24
24
  eV_atom = "eV/atom"
25
25
 
26
26
 
27
- class Units240(Enum):
27
+ class Units281(Enum):
28
28
  eV_A_2 = "eV/A^2"
29
29
 
30
30
 
31
- class ReactionEnergyBarrierSchema(BaseModel):
31
+ class ReactionEnergyBarrierPropertySchema(BaseModel):
32
32
  name: Name
33
- units: Union[Units, Units240]
33
+ units: Union[Units, Units281]
34
34
  value: float
@@ -24,11 +24,11 @@ class Units(Enum):
24
24
  eV_atom = "eV/atom"
25
25
 
26
26
 
27
- class Units280(Enum):
27
+ class Units321(Enum):
28
28
  eV_A_2 = "eV/A^2"
29
29
 
30
30
 
31
- class SurfaceEnergySchema(BaseModel):
31
+ class SurfaceEnergyPropertySchema(BaseModel):
32
32
  name: Name
33
- units: Union[Units, Units280]
33
+ units: Union[Units, Units321]
34
34
  value: float
@@ -24,11 +24,11 @@ class Units(Enum):
24
24
  eV_atom = "eV/atom"
25
25
 
26
26
 
27
- class Units283(Enum):
27
+ class Units324(Enum):
28
28
  eV_A_2 = "eV/A^2"
29
29
 
30
30
 
31
- class TotalEnergySchema(BaseModel):
31
+ class TotalEnergyPropertySchema(BaseModel):
32
32
  name: Name
33
- units: Union[Units, Units283]
33
+ units: Union[Units, Units324]
34
34
  value: float
@@ -5,7 +5,6 @@
5
5
  from __future__ import annotations
6
6
 
7
7
  from enum import Enum
8
- from typing import Optional
9
8
 
10
9
  from pydantic import BaseModel
11
10
 
@@ -23,7 +22,7 @@ class Units(Enum):
23
22
  eV_a_u_ = "eV/a.u."
24
23
 
25
24
 
26
- class TotalForcesSchema(BaseModel):
27
- name: Optional[Name] = None
28
- units: Optional[Units] = None
25
+ class TotalForcesPropertySchema(BaseModel):
26
+ name: Name
27
+ units: Units
29
28
  value: float
@@ -24,11 +24,11 @@ class Units(Enum):
24
24
  eV_atom = "eV/atom"
25
25
 
26
26
 
27
- class Units293(Enum):
27
+ class Units334(Enum):
28
28
  eV_A_2 = "eV/A^2"
29
29
 
30
30
 
31
- class ValenceBandOffsetSchema(BaseModel):
31
+ class ValenceBandOffsetPropertySchema(BaseModel):
32
32
  name: Name
33
- units: Union[Units, Units293]
33
+ units: Union[Units, Units334]
34
34
  value: float
@@ -24,11 +24,11 @@ class Units(Enum):
24
24
  eV_atom = "eV/atom"
25
25
 
26
26
 
27
- class Units301(Enum):
27
+ class Units342(Enum):
28
28
  eV_A_2 = "eV/A^2"
29
29
 
30
30
 
31
- class ZeroPointEnergySchema(BaseModel):
31
+ class ZeroPointEnergyPropertySchema(BaseModel):
32
32
  name: Name
33
- units: Union[Units, Units301]
33
+ units: Union[Units, Units342]
34
34
  value: float
@@ -5,7 +5,7 @@
5
5
  from __future__ import annotations
6
6
 
7
7
  from enum import Enum
8
- from typing import List, Optional
8
+ from typing import List
9
9
 
10
10
  from pydantic import BaseModel, Field
11
11
 
@@ -34,7 +34,7 @@ class Units(Enum):
34
34
  eV_a_u_ = "eV/a.u."
35
35
 
36
36
 
37
- class AtomicForces(BaseModel):
38
- name: Optional[Name] = None
39
- values: Optional[List[AtomicVectorSchema]] = Field(None, title="atomic vectors schema")
40
- units: Optional[Units] = None
37
+ class AtomicForcesPropertySchema(BaseModel):
38
+ name: Name
39
+ values: List[AtomicVectorSchema] = Field(..., title="atomic vectors schema")
40
+ units: Units
@@ -5,7 +5,7 @@
5
5
  from __future__ import annotations
6
6
 
7
7
  from enum import Enum
8
- from typing import List, Optional
8
+ from typing import List
9
9
 
10
10
  from pydantic import BaseModel, Field
11
11
 
@@ -26,8 +26,8 @@ class AtomicConstraintSchema(BaseModel):
26
26
 
27
27
 
28
28
  class AtomicConstraintsPropertySchema(BaseModel):
29
- name: Optional[Name] = None
30
- values: Optional[List[AtomicConstraintSchema]] = Field(None, title="atomic constraints schema")
29
+ name: Name
30
+ values: List[AtomicConstraintSchema] = Field(..., title="atomic constraints schema")
31
31
  """
32
32
  atomic constraints schema
33
33
  """
@@ -0,0 +1,30 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: properties_directory/structural/basis/boundary_conditions.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+ from typing import Optional
9
+
10
+ from pydantic import BaseModel
11
+
12
+
13
+ class Name(Enum):
14
+ boundary_conditions = "boundary_conditions"
15
+
16
+
17
+ class Type(Enum):
18
+ pbc = "pbc"
19
+ bc1 = "bc1"
20
+ bc2 = "bc2"
21
+ bc3 = "bc3"
22
+
23
+
24
+ class BoundaryConditionsPropertySchema(BaseModel):
25
+ name: Name
26
+ type: Optional[Type] = "pbc"
27
+ """
28
+ If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab.
29
+ """
30
+ offset: float
@@ -0,0 +1,82 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: properties_directory/structural/basis/predicted_properties.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+ from typing import Dict, List, Optional
9
+
10
+ from pydantic import BaseModel, Field
11
+
12
+
13
+ class Name(Enum):
14
+ predicted_properties = "predicted_properties"
15
+
16
+
17
+ class Name686(Enum):
18
+ band_gaps = "band_gaps"
19
+
20
+
21
+ class Type(Enum):
22
+ direct = "direct"
23
+ indirect = "indirect"
24
+
25
+
26
+ class Units(Enum):
27
+ kJ_mol = "kJ/mol"
28
+ eV = "eV"
29
+ J_mol = "J/mol"
30
+ hartree = "hartree"
31
+ cm_1 = "cm-1"
32
+ Ry = "Ry"
33
+ eV_atom = "eV/atom"
34
+
35
+
36
+ class BandGapSchema(BaseModel):
37
+ kpointConduction: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="kpoint schema")
38
+ """
39
+ A k-point is a point in reciprocal space of a crystal.
40
+ """
41
+ kpointValence: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="kpoint schema")
42
+ """
43
+ A k-point is a point in reciprocal space of a crystal.
44
+ """
45
+ eigenvalueConduction: Optional[float] = None
46
+ """
47
+ eigenvalue at k-point in conduction band
48
+ """
49
+ eigenvalueValence: Optional[float] = None
50
+ """
51
+ eigenvalue at k-point in valence band
52
+ """
53
+ spin: Optional[float] = None
54
+ type: Type
55
+ units: Optional[Units] = None
56
+ value: float
57
+
58
+
59
+ class Eigenvalue(BaseModel):
60
+ spin: Optional[float] = None
61
+ energies: Optional[List] = None
62
+ occupations: Optional[List] = None
63
+
64
+
65
+ class Eigenvalue8(BaseModel):
66
+ kpoint: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="kpoint schema")
67
+ """
68
+ A k-point is a point in reciprocal space of a crystal.
69
+ """
70
+ weight: Optional[float] = None
71
+ eigenvalues: Optional[List[Eigenvalue]] = None
72
+
73
+
74
+ class BandGapsSchema(BaseModel):
75
+ name: Name686
76
+ values: List[BandGapSchema]
77
+ eigenvalues: Optional[List[Eigenvalue8]] = None
78
+
79
+
80
+ class PredictedPropertiesPropertySchema(BaseModel):
81
+ name: Name
82
+ values: Dict[str, BandGapsSchema]
@@ -1,3 +1,25 @@
1
1
  # generated by datamodel-codegen:
2
- # filename: schema
2
+ # filename: properties_directory/structural/lattice/units.json
3
3
  # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+ from typing import Optional
9
+
10
+ from pydantic import BaseModel, Field
11
+
12
+
13
+ class LatticeUnitsLengthEnum(Enum):
14
+ angstrom = "angstrom"
15
+ bohr = "bohr"
16
+
17
+
18
+ class LatticeUnitsAngleEnum(Enum):
19
+ degree = "degree"
20
+ radian = "radian"
21
+
22
+
23
+ class LatticeUnitsSchema(BaseModel):
24
+ length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
25
+ angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
@@ -5,7 +5,7 @@
5
5
  from __future__ import annotations
6
6
 
7
7
  from enum import Enum
8
- from typing import List, Optional
8
+ from typing import List
9
9
 
10
10
  from pydantic import BaseModel, Field
11
11
 
@@ -29,7 +29,7 @@ class Units(Enum):
29
29
  uB = "uB"
30
30
 
31
31
 
32
- class MagneticMoments(BaseModel):
33
- name: Optional[Name] = None
34
- values: Optional[List[AtomicVectorSchema]] = Field(None, title="atomic vectors schema")
35
- units: Optional[Units] = None
32
+ class MagneticMomentsPropertySchema(BaseModel):
33
+ name: Name
34
+ values: List[AtomicVectorSchema] = Field(..., title="atomic vectors schema")
35
+ units: Units
@@ -26,7 +26,7 @@ class ObjectWithId(BaseModel):
26
26
 
27
27
 
28
28
  class FunctionalGroupPatternSchema(BaseModel):
29
- name: Optional[Name] = None
29
+ name: Name
30
30
  atoms: Optional[List[ObjectWithId]] = Field(None, title="array of ids")
31
31
  """
32
32
  array of objects containing integer id each
@@ -37,12 +37,12 @@ class FunctionalGroupPatternSchema(BaseModel):
37
37
  """
38
38
 
39
39
 
40
- class Name517(Enum):
40
+ class Name569(Enum):
41
41
  ring = "ring"
42
42
 
43
43
 
44
44
  class RingPatternSchema(BaseModel):
45
- name: Optional[Name517] = None
45
+ name: Name569
46
46
  atoms: Optional[List[ObjectWithId]] = Field(None, title="array of ids")
47
47
  """
48
48
  array of objects containing integer id each
@@ -50,12 +50,12 @@ class RingPatternSchema(BaseModel):
50
50
  isAromatic: Optional[bool] = None
51
51
 
52
52
 
53
- class Name518(Enum):
53
+ class Name570(Enum):
54
54
  special_bond = "special_bond"
55
55
 
56
56
 
57
57
  class SpecialBondPatternSchema(BaseModel):
58
- name: Optional[Name518] = None
58
+ name: Name570
59
59
  atoms: Optional[List[ObjectWithId]] = Field(None, title="array of ids")
60
60
  """
61
61
  array of objects containing integer id each
@@ -26,7 +26,7 @@ class ObjectWithId(BaseModel):
26
26
 
27
27
 
28
28
  class FunctionalGroupPatternSchema(BaseModel):
29
- name: Optional[Name] = None
29
+ name: Name
30
30
  atoms: Optional[List[ObjectWithId]] = Field(None, title="array of ids")
31
31
  """
32
32
  array of objects containing integer id each
@@ -26,7 +26,7 @@ class ObjectWithId(BaseModel):
26
26
 
27
27
 
28
28
  class RingPatternSchema(BaseModel):
29
- name: Optional[Name] = None
29
+ name: Name
30
30
  atoms: Optional[List[ObjectWithId]] = Field(None, title="array of ids")
31
31
  """
32
32
  array of objects containing integer id each
@@ -26,7 +26,7 @@ class ObjectWithId(BaseModel):
26
26
 
27
27
 
28
28
  class SpecialBondPatternSchema(BaseModel):
29
- name: Optional[Name] = None
29
+ name: Name
30
30
  atoms: Optional[List[ObjectWithId]] = Field(None, title="array of ids")
31
31
  """
32
32
  array of objects containing integer id each
@@ -5,7 +5,7 @@
5
5
  from __future__ import annotations
6
6
 
7
7
  from enum import Enum
8
- from typing import List, Optional
8
+ from typing import List
9
9
 
10
10
  from pydantic import BaseModel
11
11
 
@@ -20,7 +20,7 @@ class Units(Enum):
20
20
  hartree = "hartree"
21
21
 
22
22
 
23
- class ElectronicSelfConsistencyConvergenceSchema(BaseModel):
24
- name: Optional[Name] = None
25
- units: Optional[Units] = None
23
+ class ConvergenceElectronicPropertySchema(BaseModel):
24
+ name: Name
25
+ units: Units
26
26
  data: List[List[float]]
@@ -18,14 +18,14 @@ class Units(Enum):
18
18
  eV = "eV"
19
19
 
20
20
 
21
- class Units204(Enum):
21
+ class Units245(Enum):
22
22
  eV = "eV"
23
23
  Ry = "Ry"
24
24
  hartree = "hartree"
25
25
 
26
26
 
27
27
  class Electronic(BaseModel):
28
- units: Optional[Units204] = None
28
+ units: Optional[Units245] = None
29
29
  """
30
30
  units for force tolerance
31
31
  """
@@ -33,7 +33,7 @@ class Electronic(BaseModel):
33
33
 
34
34
 
35
35
  class Datum(BaseModel):
36
- energy: Optional[float] = None
36
+ energy: float
37
37
  """
38
38
  converged electronic energy for this structure (last in `electronic`)
39
39
  """
@@ -47,13 +47,13 @@ class Datum(BaseModel):
47
47
  """
48
48
 
49
49
 
50
- class IonicConvergenceSchema(BaseModel):
51
- name: Optional[Name] = None
50
+ class ConvergenceIonicPropertySchema(BaseModel):
51
+ name: Name
52
52
  tolerance: Optional[Any] = None
53
53
  """
54
54
  for ionic convergence tolerance shows force tolerance
55
55
  """
56
- units: Optional[Units] = None
56
+ units: Units
57
57
  """
58
58
  units for force tolerance
59
59
  """