mat3ra-esse 2025.8.14.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.
- mat3ra/esse/data/examples.py +1 -1
- mat3ra/esse/data/schemas.py +1 -1
- mat3ra/esse/models/core/abstract/_2d_data.py +2 -2
- mat3ra/esse/models/core/abstract/_2d_plot.py +2 -6
- mat3ra/esse/models/core/primitive/_1d_data_series.py +3 -3
- mat3ra/esse/models/core/primitive/axis_3d_names_enum.py +13 -0
- mat3ra/esse/models/core/reference/__init__.py +8 -8
- mat3ra/esse/models/core/reference/exabyte.py +2 -8
- mat3ra/esse/models/core/reference/experiment/__init__.py +2 -2
- mat3ra/esse/models/core/reusable/coordinate_conditions/__init__.py +1 -78
- mat3ra/esse/models/core/reusable/coordinate_conditions/index.py +80 -0
- mat3ra/esse/models/core/reusable/hubbard_parameters.py +48 -0
- mat3ra/esse/models/core/reusable/kpoint.py +16 -0
- mat3ra/esse/models/core/reusable/repetition.py +14 -0
- mat3ra/esse/models/definitions/material.py +13 -0
- mat3ra/esse/models/element.py +10 -8
- mat3ra/esse/models/job/__init__.py +62 -62
- mat3ra/esse/models/material/__init__.py +12 -12
- mat3ra/esse/models/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.py +80 -80
- mat3ra/esse/models/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.py +80 -80
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/adatom/configuration.py +35 -35
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.py +80 -80
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/island/configuration.py +53 -53
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/terrace/configuration.py +53 -53
- mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.py +29 -29
- mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.py +32 -32
- mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/vacancy.py +12 -12
- mat3ra/esse/models/materials_category/pristine_structures/three_dimensional/ideal_crystal.py +12 -12
- mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/nanoribbon.py +52 -52
- mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/nanotape.py +32 -32
- mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab.py +32 -32
- mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.py +32 -32
- mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab_strained_supercell_with_gap.py +1151 -0
- mat3ra/esse/models/materials_category/processed_structures/two_dimensional/passivation/configuration.py +17 -17
- mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.py +8 -8
- mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.py +12 -12
- mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/void_region.py +12 -12
- mat3ra/esse/models/materials_category_components/entities/core/three_dimensional/crystal.py +8 -8
- mat3ra/esse/models/materials_category_components/entities/core/two_dimensional/vacuum.py +12 -12
- mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.py +8 -8
- mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.py +8 -8
- mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/crystal_lattice_base.py +8 -8
- mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.py +12 -12
- mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/strained_uniform.py +12 -12
- mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/supercell.py +12 -12
- mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.py +8 -8
- mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.py +52 -52
- mat3ra/esse/models/materials_category_components/operations/core/modifications/perturb.py +12 -12
- mat3ra/esse/models/methods_directory/physical/psp/__init__.py +2 -2
- mat3ra/esse/models/methods_directory/physical/psp/file.py +2 -2
- mat3ra/esse/models/methods_directory/physical/psp/file_data_item.py +2 -2
- mat3ra/esse/models/properties_directory/derived_properties.py +6 -6
- mat3ra/esse/models/properties_directory/elemental/atomic_radius.py +1 -1
- mat3ra/esse/models/properties_directory/elemental/electronegativity.py +1 -2
- mat3ra/esse/models/properties_directory/elemental/ionization_potential.py +3 -4
- mat3ra/esse/models/properties_directory/jupyter_notebook_endpoint.py +20 -0
- mat3ra/esse/models/properties_directory/non_scalar/average_potential_profile.py +4 -8
- mat3ra/esse/models/properties_directory/non_scalar/band_gaps.py +2 -2
- mat3ra/esse/models/properties_directory/non_scalar/band_structure.py +5 -9
- mat3ra/esse/models/properties_directory/non_scalar/charge_density_profile.py +4 -8
- mat3ra/esse/models/properties_directory/non_scalar/density_of_states.py +5 -8
- mat3ra/esse/models/properties_directory/non_scalar/dielectric_tensor.py +2 -2
- mat3ra/esse/models/properties_directory/non_scalar/file_content.py +2 -2
- mat3ra/esse/models/properties_directory/non_scalar/final_structure.py +22 -0
- mat3ra/esse/models/properties_directory/non_scalar/hubbard_u.py +4 -4
- mat3ra/esse/models/properties_directory/non_scalar/hubbard_v.py +3 -4
- mat3ra/esse/models/properties_directory/non_scalar/hubbard_v_nn.py +3 -4
- mat3ra/esse/models/properties_directory/non_scalar/is_relaxed.py +22 -0
- mat3ra/esse/models/properties_directory/non_scalar/phonon_dispersions.py +10 -14
- mat3ra/esse/models/properties_directory/non_scalar/phonon_dos.py +10 -14
- mat3ra/esse/models/properties_directory/non_scalar/potential_profile.py +8 -12
- mat3ra/esse/models/properties_directory/non_scalar/reaction_energy_profile.py +8 -12
- mat3ra/esse/models/properties_directory/non_scalar/stress_tensor.py +5 -7
- mat3ra/esse/models/properties_directory/non_scalar/total_energy_contributions.py +64 -51
- mat3ra/esse/models/properties_directory/non_scalar/vibrational_spectrum.py +10 -14
- mat3ra/esse/models/properties_directory/non_scalar/workflow.py +2234 -0
- mat3ra/esse/models/properties_directory/reusable/hubbard_parameters.py +48 -0
- mat3ra/esse/models/properties_directory/scalar/electron_affinity.py +1 -1
- mat3ra/esse/models/properties_directory/scalar/fermi_energy.py +1 -1
- mat3ra/esse/models/properties_directory/scalar/formation_energy.py +1 -1
- mat3ra/esse/models/properties_directory/scalar/ionization_potential.py +3 -3
- mat3ra/esse/models/properties_directory/scalar/pressure.py +3 -4
- mat3ra/esse/models/properties_directory/scalar/reaction_energy_barrier.py +3 -3
- mat3ra/esse/models/properties_directory/scalar/surface_energy.py +3 -3
- mat3ra/esse/models/properties_directory/scalar/total_energy.py +3 -3
- mat3ra/esse/models/properties_directory/scalar/total_force.py +3 -4
- mat3ra/esse/models/properties_directory/scalar/valence_band_offset.py +3 -3
- mat3ra/esse/models/properties_directory/scalar/zero_point_energy.py +3 -3
- mat3ra/esse/models/properties_directory/structural/atomic_forces.py +5 -5
- mat3ra/esse/models/properties_directory/structural/basis/atomic_constraints_property.py +3 -3
- mat3ra/esse/models/properties_directory/structural/basis/boundary_conditions.py +30 -0
- mat3ra/esse/models/properties_directory/structural/basis/predicted_properties.py +82 -0
- mat3ra/esse/models/properties_directory/structural/lattice/units/__init__.py +23 -1
- mat3ra/esse/models/properties_directory/structural/magnetic_moments.py +5 -5
- mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +5 -5
- mat3ra/esse/models/properties_directory/structural/patterns/functional_group.py +1 -1
- mat3ra/esse/models/properties_directory/structural/patterns/ring.py +1 -1
- mat3ra/esse/models/properties_directory/structural/patterns/special_bond.py +1 -1
- mat3ra/esse/models/properties_directory/workflow/convergence/electronic.py +4 -4
- mat3ra/esse/models/properties_directory/workflow/convergence/ionic.py +6 -6
- mat3ra/esse/models/property/base.py +1492 -14
- mat3ra/esse/models/property/holder.py +3568 -0
- mat3ra/esse/models/property/meta_holder/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/g.py +31 -0
- mat3ra/esse/models/property/meta_holder.py +140 -0
- mat3ra/esse/models/property/proto_holder.py +86 -0
- mat3ra/esse/models/property/raw.py +27 -11
- mat3ra/esse/models/property/source.py +24 -1
- mat3ra/esse/models/workflow/__init__.py +54 -54
- mat3ra/esse/models/workflow/base_flow.py +4 -4
- mat3ra/esse/models/workflow/subworkflow/__init__.py +7 -7
- mat3ra/esse/models/workflow/subworkflow/unit.py +10 -10
- mat3ra/esse/models/workflow/unit/__init__.py +12 -12
- mat3ra/esse/models/workflow/unit/io/__init__.py +4 -4
- mat3ra/esse/models/workflow/unit/io/db.py +2 -2
- mat3ra/esse/models/workflow/unit/io/object_storage.py +1 -1
- {mat3ra_esse-2025.8.14.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/METADATA +1 -1
- {mat3ra_esse-2025.8.14.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/RECORD +122 -118
- mat3ra/esse/models/property/meta.py +0 -200
- mat3ra/esse/models/software_directory/ml/exabyteml.py +0 -28
- mat3ra/esse/models/software_directory/ml/unit/execution/__init__.py +0 -879
- mat3ra/esse/models/software_directory/ml/unit/execution/evaluate/__init__.py +0 -3
- mat3ra/esse/models/software_directory/ml/unit/execution/evaluate/cross_validate.py +0 -293
- mat3ra/esse/models/software_directory/ml/unit/execution/initialize.py +0 -293
- mat3ra/esse/models/software_directory/ml/unit/execution/score.py +0 -286
- mat3ra/esse/models/software_directory/ml/unit/execution/train.py +0 -297
- mat3ra/esse/models/software_directory/ml/unit/processing/__init__.py +0 -276
- mat3ra/esse/models/software_directory/ml/unit/processing/data_transformation/__init__.py +0 -167
- mat3ra/esse/models/software_directory/ml/unit/processing/data_transformation/manipulation.py +0 -144
- mat3ra/esse/models/software_directory/ml/unit/processing/data_transformation/scale_and_reduce.py +0 -163
- mat3ra/esse/models/software_directory/ml/unit/processing/feature_selection/__init__.py +0 -148
- mat3ra/esse/models/software_directory/ml/unit/processing/feature_selection/filter_based.py +0 -144
- /mat3ra/esse/models/{software_directory/ml → properties_directory/reusable}/__init__.py +0 -0
- /mat3ra/esse/models/{software_directory/ml/unit → property/meta_holder/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e}/__init__.py +0 -0
- {mat3ra_esse-2025.8.14.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/WHEEL +0 -0
- {mat3ra_esse-2025.8.14.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/licenses/LICENSE.md +0 -0
- {mat3ra_esse-2025.8.14.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/top_level.txt +0 -0
|
@@ -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]
|
|
@@ -24,11 +24,11 @@ class Units(Enum):
|
|
|
24
24
|
eV_atom = "eV/atom"
|
|
25
25
|
|
|
26
26
|
|
|
27
|
-
class
|
|
27
|
+
class Units248(Enum):
|
|
28
28
|
eV_A_2 = "eV/A^2"
|
|
29
29
|
|
|
30
30
|
|
|
31
|
-
class
|
|
31
|
+
class IonizationPotentialScalarPropertySchema(BaseModel):
|
|
32
32
|
name: Name
|
|
33
|
-
units: Union[Units,
|
|
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
|
|
23
|
-
name:
|
|
24
|
-
units:
|
|
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
|
|
27
|
+
class Units281(Enum):
|
|
28
28
|
eV_A_2 = "eV/A^2"
|
|
29
29
|
|
|
30
30
|
|
|
31
|
-
class
|
|
31
|
+
class ReactionEnergyBarrierPropertySchema(BaseModel):
|
|
32
32
|
name: Name
|
|
33
|
-
units: Union[Units,
|
|
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
|
|
27
|
+
class Units321(Enum):
|
|
28
28
|
eV_A_2 = "eV/A^2"
|
|
29
29
|
|
|
30
30
|
|
|
31
|
-
class
|
|
31
|
+
class SurfaceEnergyPropertySchema(BaseModel):
|
|
32
32
|
name: Name
|
|
33
|
-
units: Union[Units,
|
|
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
|
|
27
|
+
class Units324(Enum):
|
|
28
28
|
eV_A_2 = "eV/A^2"
|
|
29
29
|
|
|
30
30
|
|
|
31
|
-
class
|
|
31
|
+
class TotalEnergyPropertySchema(BaseModel):
|
|
32
32
|
name: Name
|
|
33
|
-
units: Union[Units,
|
|
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
|
|
27
|
-
name:
|
|
28
|
-
units:
|
|
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
|
|
27
|
+
class Units334(Enum):
|
|
28
28
|
eV_A_2 = "eV/A^2"
|
|
29
29
|
|
|
30
30
|
|
|
31
|
-
class
|
|
31
|
+
class ValenceBandOffsetPropertySchema(BaseModel):
|
|
32
32
|
name: Name
|
|
33
|
-
units: Union[Units,
|
|
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
|
|
27
|
+
class Units342(Enum):
|
|
28
28
|
eV_A_2 = "eV/A^2"
|
|
29
29
|
|
|
30
30
|
|
|
31
|
-
class
|
|
31
|
+
class ZeroPointEnergyPropertySchema(BaseModel):
|
|
32
32
|
name: Name
|
|
33
|
-
units: Union[Units,
|
|
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
|
|
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
|
|
38
|
-
name:
|
|
39
|
-
values:
|
|
40
|
-
units:
|
|
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
|
|
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:
|
|
30
|
-
values:
|
|
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:
|
|
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
|
|
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
|
|
33
|
-
name:
|
|
34
|
-
values:
|
|
35
|
-
units:
|
|
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:
|
|
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
|
|
40
|
+
class Name569(Enum):
|
|
41
41
|
ring = "ring"
|
|
42
42
|
|
|
43
43
|
|
|
44
44
|
class RingPatternSchema(BaseModel):
|
|
45
|
-
name:
|
|
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
|
|
53
|
+
class Name570(Enum):
|
|
54
54
|
special_bond = "special_bond"
|
|
55
55
|
|
|
56
56
|
|
|
57
57
|
class SpecialBondPatternSchema(BaseModel):
|
|
58
|
-
name:
|
|
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:
|
|
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
|
|
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
|
|
24
|
-
name:
|
|
25
|
-
units:
|
|
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
|
|
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[
|
|
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:
|
|
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
|
|
51
|
-
name:
|
|
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:
|
|
56
|
+
units: Units
|
|
57
57
|
"""
|
|
58
58
|
units for force tolerance
|
|
59
59
|
"""
|