mat3ra-esse 2025.4.15.post0__py3-none-any.whl → 2025.4.22.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/apse/db/nist_jarvis/2024_3.13/__init__.py +3 -0
- mat3ra/esse/models/apse/db/nist_jarvis/2024_3.13/atoms.py +41 -0
- mat3ra/esse/models/apse/db/nist_jarvis/2024_3.13/db_entry.py +55 -0
- mat3ra/esse/models/apse/file/applications/espresso/7.2/__init__.py +3 -0
- mat3ra/esse/models/apse/file/applications/espresso/7.2/pw.x/__init__.py +3 -0
- mat3ra/esse/models/apse/file/applications/espresso/7.2/pw.x/atomic_positions.py +51 -0
- mat3ra/esse/models/apse/file/applications/espresso/7.2/pw.x/atomic_species.py +34 -0
- mat3ra/esse/models/apse/file/applications/espresso/7.2/pw.x/cell.py +111 -0
- mat3ra/esse/models/apse/file/applications/espresso/7.2/pw.x/cell_parameters.py +36 -0
- mat3ra/esse/models/apse/file/applications/espresso/7.2/pw.x/control.py +169 -0
- mat3ra/esse/models/apse/file/applications/espresso/7.2/pw.x/electrons.py +139 -0
- mat3ra/esse/models/apse/file/applications/espresso/7.2/pw.x/hubbard.py +194 -0
- mat3ra/esse/models/apse/file/applications/espresso/7.2/pw.x/ions.py +422 -0
- mat3ra/esse/models/apse/file/applications/espresso/7.2/pw.x/k_points.py +73 -0
- mat3ra/esse/models/apse/file/applications/espresso/7.2/pw.x/system.py +841 -0
- mat3ra/esse/models/apse/file/applications/espresso/7.2/pw_x.py +1990 -0
- mat3ra/esse/models/core/abstract/coordinate_3d.py +13 -0
- mat3ra/esse/models/core/abstract/kpoint.py +16 -0
- mat3ra/esse/models/core/abstract/matrix_3x3.py +17 -0
- mat3ra/esse/models/core/abstract/vector_3d.py +13 -0
- mat3ra/esse/models/core/abstract/vector_boolean_3d.py +13 -0
- mat3ra/esse/models/core/primitive/array_of_ids.py +5 -5
- mat3ra/esse/models/core/primitive/object_with_id.py +14 -0
- mat3ra/esse/models/core/primitive/object_with_id_and_value.py +20 -0
- mat3ra/esse/models/core/reusable/atomic_scalars.py +4 -4
- mat3ra/esse/models/core/reusable/atomic_string.py +18 -0
- mat3ra/esse/models/core/reusable/atomic_vector.py +20 -0
- mat3ra/esse/models/core/reusable/atomic_vectors.py +9 -9
- mat3ra/esse/models/core/reusable/band_gap.py +8 -2
- mat3ra/esse/models/core/reusable/energy.py +2 -2
- mat3ra/esse/models/core/reusable/energy_accuracy_levels/__init__.py +3 -0
- mat3ra/esse/models/element.py +6 -6
- mat3ra/esse/models/material/__init__.py +70 -56
- mat3ra/esse/models/methods_directory/physical/psp/file/__init__.py +129 -0
- mat3ra/esse/models/methods_directory/physical/psp/file_data_item/__init__.py +111 -0
- mat3ra/esse/models/properties_directory/derived_properties.py +10 -10
- mat3ra/esse/models/properties_directory/non_scalar/average_potential_profile.py +2 -2
- mat3ra/esse/models/properties_directory/non_scalar/band_gaps.py +12 -3
- mat3ra/esse/models/properties_directory/non_scalar/band_structure.py +2 -2
- mat3ra/esse/models/properties_directory/non_scalar/density_of_states.py +2 -2
- mat3ra/esse/models/properties_directory/non_scalar/phonon_dispersions.py +2 -2
- mat3ra/esse/models/properties_directory/non_scalar/phonon_dos.py +2 -2
- mat3ra/esse/models/properties_directory/non_scalar/stress_tensor.py +1 -1
- mat3ra/esse/models/properties_directory/non_scalar/total_energy_contributions.py +26 -26
- mat3ra/esse/models/properties_directory/non_scalar/vibrational_spectrum.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/electron_affinity.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/fermi_energy.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/formation_energy.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/ionization_potential.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/reaction_energy_barrier.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/surface_energy.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/total_energy.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/valence_band_offset.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/zero_point_energy.py +2 -2
- mat3ra/esse/models/properties_directory/structural/atomic_forces.py +8 -8
- mat3ra/esse/models/properties_directory/structural/basis/__init__.py +38 -16
- mat3ra/esse/models/properties_directory/structural/basis/atomic_constraint.py +20 -0
- mat3ra/esse/models/properties_directory/structural/basis/atomic_constraints.py +11 -14
- mat3ra/esse/models/properties_directory/structural/basis/atomic_constraints_property.py +33 -0
- mat3ra/esse/models/properties_directory/structural/basis/atomic_coordinate.py +10 -4
- mat3ra/esse/models/properties_directory/structural/basis/atomic_coordinates.py +16 -27
- mat3ra/esse/models/properties_directory/structural/basis/atomic_element.py +6 -7
- mat3ra/esse/models/properties_directory/structural/basis/atomic_elements.py +27 -0
- mat3ra/esse/models/properties_directory/structural/basis/atomic_label.py +11 -5
- mat3ra/esse/models/properties_directory/structural/basis/atomic_labels.py +27 -0
- mat3ra/esse/models/properties_directory/structural/basis/bonds.py +3 -3
- mat3ra/esse/models/properties_directory/structural/basis/units_enum.py +12 -0
- mat3ra/esse/models/properties_directory/structural/lattice/__init__.py +16 -24
- mat3ra/esse/models/properties_directory/structural/lattice/lattice_vectors.py +12 -21
- mat3ra/esse/models/properties_directory/structural/lattice/units/__init__.py +3 -0
- mat3ra/esse/models/properties_directory/structural/lattice/units/angle_enum.py +12 -0
- mat3ra/esse/models/properties_directory/structural/lattice/units/length_enum.py +12 -0
- mat3ra/esse/models/properties_directory/structural/lattice/vectors/__init__.py +26 -0
- mat3ra/esse/models/properties_directory/structural/lattice/vectors/units_enum.py +12 -0
- mat3ra/esse/models/properties_directory/structural/magnetic_moments.py +8 -8
- mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +9 -9
- mat3ra/esse/models/properties_directory/structural/patterns/functional_group.py +3 -3
- mat3ra/esse/models/properties_directory/structural/patterns/ring.py +3 -3
- mat3ra/esse/models/properties_directory/structural/patterns/special_bond.py +3 -3
- mat3ra/esse/models/properties_directory/workflow/convergence/ionic.py +2 -2
- {mat3ra_esse-2025.4.15.post0.dist-info → mat3ra_esse-2025.4.22.post0.dist-info}/METADATA +1 -1
- {mat3ra_esse-2025.4.15.post0.dist-info → mat3ra_esse-2025.4.22.post0.dist-info}/RECORD +87 -49
- {mat3ra_esse-2025.4.15.post0.dist-info → mat3ra_esse-2025.4.22.post0.dist-info}/WHEEL +1 -1
- {mat3ra_esse-2025.4.15.post0.dist-info → mat3ra_esse-2025.4.22.post0.dist-info}/licenses/LICENSE.md +0 -0
- {mat3ra_esse-2025.4.15.post0.dist-info → mat3ra_esse-2025.4.22.post0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: core/abstract/coordinate_3d.json
|
|
3
|
+
# version: 0.28.5
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import List
|
|
8
|
+
|
|
9
|
+
from pydantic import Field, RootModel
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class Coordinate3dSchema(RootModel[List[float]]):
|
|
13
|
+
root: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: core/abstract/kpoint.json
|
|
3
|
+
# version: 0.28.5
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import List
|
|
8
|
+
|
|
9
|
+
from pydantic import Field, RootModel
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class KpointSchema(RootModel[List[float]]):
|
|
13
|
+
root: List[float] = Field(..., max_length=3, min_length=3, title="kpoint schema")
|
|
14
|
+
"""
|
|
15
|
+
A k-point is a point in reciprocal space of a crystal.
|
|
16
|
+
"""
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: core/abstract/matrix_3x3.json
|
|
3
|
+
# version: 0.28.5
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import List
|
|
8
|
+
|
|
9
|
+
from pydantic import Field, RootModel
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class ArrayOf3NumberElementsSchema(RootModel[List[float]]):
|
|
13
|
+
root: List[float] = Field(..., title="array of 3 number elements schema")
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class Matrix3x3Schema(RootModel[List[ArrayOf3NumberElementsSchema]]):
|
|
17
|
+
root: List[ArrayOf3NumberElementsSchema] = Field(..., max_length=3, min_length=3, title="matrix 3x3 schema")
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: core/abstract/vector_3d.json
|
|
3
|
+
# version: 0.28.5
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import List
|
|
8
|
+
|
|
9
|
+
from pydantic import Field, RootModel
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class Vector3dSchema(RootModel[List[float]]):
|
|
13
|
+
root: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: core/abstract/vector_boolean_3d.json
|
|
3
|
+
# version: 0.28.5
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import List
|
|
8
|
+
|
|
9
|
+
from pydantic import Field, RootModel
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class ESSE(RootModel[List[bool]]):
|
|
13
|
+
root: List[bool] = Field(..., title="vector boolean 3d schema")
|
|
@@ -4,20 +4,20 @@
|
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
-
from typing import List
|
|
7
|
+
from typing import List
|
|
8
8
|
|
|
9
9
|
from pydantic import BaseModel, Field, RootModel
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
class
|
|
13
|
-
id:
|
|
12
|
+
class ObjectWithId(BaseModel):
|
|
13
|
+
id: int
|
|
14
14
|
"""
|
|
15
15
|
integer id of this entry
|
|
16
16
|
"""
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
class
|
|
20
|
-
root: List[
|
|
19
|
+
class ArrayOfIds(RootModel[List[ObjectWithId]]):
|
|
20
|
+
root: List[ObjectWithId] = Field(..., title="array of ids")
|
|
21
21
|
"""
|
|
22
22
|
array of objects containing integer id each
|
|
23
23
|
"""
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: core/primitive/object_with_id.json
|
|
3
|
+
# version: 0.28.5
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from pydantic import BaseModel
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class ObjectWithId(BaseModel):
|
|
11
|
+
id: int
|
|
12
|
+
"""
|
|
13
|
+
integer id of this entry
|
|
14
|
+
"""
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: core/primitive/object_with_id_and_value.json
|
|
3
|
+
# version: 0.28.5
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import Any
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class ObjectWithIdAndValueSchema(BaseModel):
|
|
13
|
+
value: Any
|
|
14
|
+
"""
|
|
15
|
+
value of this entry
|
|
16
|
+
"""
|
|
17
|
+
id: int
|
|
18
|
+
"""
|
|
19
|
+
integer id of this entry
|
|
20
|
+
"""
|
|
@@ -13,16 +13,16 @@ class ScalarSchema(BaseModel):
|
|
|
13
13
|
value: float
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
class
|
|
16
|
+
class ObjectWithId(BaseModel):
|
|
17
17
|
value: Optional[ScalarSchema] = Field(None, title="scalar schema")
|
|
18
|
-
id:
|
|
18
|
+
id: int
|
|
19
19
|
"""
|
|
20
20
|
integer id of this entry
|
|
21
21
|
"""
|
|
22
22
|
|
|
23
23
|
|
|
24
|
-
class AtomicScalarsVectorsSchema(RootModel[List[
|
|
25
|
-
root: List[
|
|
24
|
+
class AtomicScalarsVectorsSchema(RootModel[List[ObjectWithId]]):
|
|
25
|
+
root: List[ObjectWithId] = Field(..., title="atomic scalars vectors schema")
|
|
26
26
|
"""
|
|
27
27
|
array of objects containing integer id each
|
|
28
28
|
"""
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: core/reusable/atomic_string.json
|
|
3
|
+
# version: 0.28.5
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from pydantic import BaseModel
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class AtomicStringSchema(BaseModel):
|
|
11
|
+
value: str
|
|
12
|
+
"""
|
|
13
|
+
value of this entry
|
|
14
|
+
"""
|
|
15
|
+
id: int
|
|
16
|
+
"""
|
|
17
|
+
integer id of this entry
|
|
18
|
+
"""
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: core/reusable/atomic_vector.json
|
|
3
|
+
# version: 0.28.5
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import List
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel, Field
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class AtomicVectorSchema(BaseModel):
|
|
13
|
+
value: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
14
|
+
"""
|
|
15
|
+
value of this entry
|
|
16
|
+
"""
|
|
17
|
+
id: int
|
|
18
|
+
"""
|
|
19
|
+
integer id of this entry
|
|
20
|
+
"""
|
|
@@ -4,21 +4,21 @@
|
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
-
from typing import List
|
|
7
|
+
from typing import List
|
|
8
8
|
|
|
9
9
|
from pydantic import BaseModel, Field, RootModel
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
class
|
|
13
|
-
value:
|
|
14
|
-
|
|
12
|
+
class AtomicVectorSchema(BaseModel):
|
|
13
|
+
value: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
14
|
+
"""
|
|
15
|
+
value of this entry
|
|
16
|
+
"""
|
|
17
|
+
id: int
|
|
15
18
|
"""
|
|
16
19
|
integer id of this entry
|
|
17
20
|
"""
|
|
18
21
|
|
|
19
22
|
|
|
20
|
-
class AtomicVectorsSchema(RootModel[List[
|
|
21
|
-
root: List[
|
|
22
|
-
"""
|
|
23
|
-
array of objects containing integer id each
|
|
24
|
-
"""
|
|
23
|
+
class AtomicVectorsSchema(RootModel[List[AtomicVectorSchema]]):
|
|
24
|
+
root: List[AtomicVectorSchema] = Field(..., title="atomic vectors schema")
|
|
@@ -26,8 +26,14 @@ class Units(Enum):
|
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
class BandGapSchema(BaseModel):
|
|
29
|
-
kpointConduction: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="
|
|
30
|
-
|
|
29
|
+
kpointConduction: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="kpoint schema")
|
|
30
|
+
"""
|
|
31
|
+
A k-point is a point in reciprocal space of a crystal.
|
|
32
|
+
"""
|
|
33
|
+
kpointValence: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="kpoint schema")
|
|
34
|
+
"""
|
|
35
|
+
A k-point is a point in reciprocal space of a crystal.
|
|
36
|
+
"""
|
|
31
37
|
eigenvalueConduction: Optional[float] = None
|
|
32
38
|
"""
|
|
33
39
|
eigenvalue at k-point in conduction band
|
|
@@ -20,11 +20,11 @@ class Units(Enum):
|
|
|
20
20
|
eV_atom = "eV/atom"
|
|
21
21
|
|
|
22
22
|
|
|
23
|
-
class
|
|
23
|
+
class Units21(Enum):
|
|
24
24
|
eV_A_2 = "eV/A^2"
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
class EnergySchema(BaseModel):
|
|
28
28
|
name: str
|
|
29
|
-
units: Union[Units,
|
|
29
|
+
units: Union[Units, Units21]
|
|
30
30
|
value: float
|
mat3ra/esse/models/element.py
CHANGED
|
@@ -33,20 +33,20 @@ class AtomicRadius(BaseModel):
|
|
|
33
33
|
value: float
|
|
34
34
|
|
|
35
35
|
|
|
36
|
-
class
|
|
36
|
+
class Name23(Enum):
|
|
37
37
|
electronegativity = "electronegativity"
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
class Electronegativity(BaseModel):
|
|
41
|
-
name: Optional[
|
|
41
|
+
name: Optional[Name23] = None
|
|
42
42
|
value: float
|
|
43
43
|
|
|
44
44
|
|
|
45
|
-
class
|
|
45
|
+
class Name24(Enum):
|
|
46
46
|
ionization_potential = "ionization_potential"
|
|
47
47
|
|
|
48
48
|
|
|
49
|
-
class
|
|
49
|
+
class Units19(Enum):
|
|
50
50
|
kJ_mol = "kJ/mol"
|
|
51
51
|
eV = "eV"
|
|
52
52
|
J_mol = "J/mol"
|
|
@@ -57,8 +57,8 @@ class Units21(Enum):
|
|
|
57
57
|
|
|
58
58
|
|
|
59
59
|
class IonizationPotential(BaseModel):
|
|
60
|
-
name: Optional[
|
|
61
|
-
units: Optional[
|
|
60
|
+
name: Optional[Name24] = None
|
|
61
|
+
units: Optional[Units19] = None
|
|
62
62
|
value: float
|
|
63
63
|
|
|
64
64
|
|
|
@@ -10,60 +10,74 @@ 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
|
|
14
|
-
id: float
|
|
13
|
+
class AtomicElementSchema(BaseModel):
|
|
15
14
|
value: str
|
|
16
|
-
occurrence: Optional[float] = None
|
|
17
15
|
"""
|
|
18
|
-
|
|
16
|
+
value of this entry
|
|
17
|
+
"""
|
|
18
|
+
id: int
|
|
19
|
+
"""
|
|
20
|
+
integer id of this entry
|
|
19
21
|
"""
|
|
20
|
-
oxidationState: Optional[float] = None
|
|
21
22
|
|
|
22
23
|
|
|
23
|
-
class
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
class AtomicCoordinateSchema(BaseModel):
|
|
25
|
+
value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
|
|
26
|
+
"""
|
|
27
|
+
value of this entry
|
|
28
|
+
"""
|
|
29
|
+
id: int
|
|
30
|
+
"""
|
|
31
|
+
integer id of this entry
|
|
32
|
+
"""
|
|
26
33
|
|
|
27
34
|
|
|
28
|
-
class
|
|
35
|
+
class BasisUnitsEnum(Enum):
|
|
29
36
|
crystal = "crystal"
|
|
30
37
|
cartesian = "cartesian"
|
|
31
38
|
|
|
32
39
|
|
|
33
|
-
class
|
|
34
|
-
|
|
35
|
-
|
|
40
|
+
class AtomicLabelSchema(BaseModel):
|
|
41
|
+
value: Union[Union[int, str, float], conint(ge=1, le=9)]
|
|
42
|
+
"""
|
|
43
|
+
value of this entry
|
|
44
|
+
"""
|
|
45
|
+
id: int
|
|
46
|
+
"""
|
|
47
|
+
integer id of this entry
|
|
48
|
+
"""
|
|
36
49
|
|
|
37
50
|
|
|
38
51
|
class BasisSchema(BaseModel):
|
|
39
|
-
elements: List[
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
+
elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema")
|
|
53
|
+
"""
|
|
54
|
+
atomic elements schema
|
|
55
|
+
"""
|
|
56
|
+
coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
|
|
57
|
+
"""
|
|
58
|
+
atomic coordinates schema
|
|
59
|
+
"""
|
|
60
|
+
units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
|
|
61
|
+
labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
|
|
62
|
+
"""
|
|
63
|
+
atomic labels schema
|
|
64
|
+
"""
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
class LatticeVectorsUnitsEnum(Enum):
|
|
52
68
|
angstrom = "angstrom"
|
|
53
|
-
a_u_ = "a.u."
|
|
54
69
|
bohr = "bohr"
|
|
55
|
-
pm = "pm"
|
|
56
70
|
|
|
57
71
|
|
|
58
|
-
class
|
|
72
|
+
class LatticeVectorsSchema(BaseModel):
|
|
73
|
+
a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
74
|
+
b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
75
|
+
c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
59
76
|
alat: Optional[float] = 1
|
|
60
77
|
"""
|
|
61
78
|
lattice parameter for fractional coordinates
|
|
62
79
|
"""
|
|
63
|
-
units: Optional[
|
|
64
|
-
a: List[float] = Field(..., max_length=3, min_length=3, title="array of 3 number elements schema")
|
|
65
|
-
b: List[float] = Field(..., max_length=3, min_length=3, title="array of 3 number elements schema")
|
|
66
|
-
c: List[float] = Field(..., max_length=3, min_length=3, title="array of 3 number elements schema")
|
|
80
|
+
units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
|
|
67
81
|
|
|
68
82
|
|
|
69
83
|
class LatticeTypeEnum(Enum):
|
|
@@ -83,28 +97,22 @@ class LatticeTypeEnum(Enum):
|
|
|
83
97
|
RHL = "RHL"
|
|
84
98
|
|
|
85
99
|
|
|
86
|
-
class
|
|
100
|
+
class LatticeUnitsLengthEnum(Enum):
|
|
87
101
|
angstrom = "angstrom"
|
|
88
102
|
bohr = "bohr"
|
|
89
103
|
|
|
90
104
|
|
|
91
|
-
class
|
|
105
|
+
class LatticeUnitsAngleEnum(Enum):
|
|
92
106
|
degree = "degree"
|
|
93
107
|
radian = "radian"
|
|
94
108
|
|
|
95
109
|
|
|
96
110
|
class LatticeUnitsSchema(BaseModel):
|
|
97
|
-
length: Optional[
|
|
98
|
-
angle: Optional[
|
|
111
|
+
length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
|
|
112
|
+
angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
|
|
99
113
|
|
|
100
114
|
|
|
101
115
|
class LatticeSchema(BaseModel):
|
|
102
|
-
vectors: Optional[LatticeExplicitUnit] = Field(None, title="lattice explicit unit")
|
|
103
|
-
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
104
|
-
units: Optional[LatticeUnitsSchema] = Field(
|
|
105
|
-
default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
106
|
-
title="Lattice units schema",
|
|
107
|
-
)
|
|
108
116
|
a: float
|
|
109
117
|
"""
|
|
110
118
|
length of the first lattice vector
|
|
@@ -129,46 +137,52 @@ class LatticeSchema(BaseModel):
|
|
|
129
137
|
"""
|
|
130
138
|
angle between first and third lattice vector
|
|
131
139
|
"""
|
|
140
|
+
vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema")
|
|
141
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
142
|
+
units: Optional[LatticeUnitsSchema] = Field(
|
|
143
|
+
default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
144
|
+
title="Lattice units schema",
|
|
145
|
+
)
|
|
132
146
|
|
|
133
147
|
|
|
134
148
|
class Name(Enum):
|
|
135
149
|
volume = "volume"
|
|
136
150
|
|
|
137
151
|
|
|
138
|
-
class
|
|
152
|
+
class Units(Enum):
|
|
139
153
|
angstrom_3 = "angstrom^3"
|
|
140
154
|
|
|
141
155
|
|
|
142
156
|
class VolumeSchema(BaseModel):
|
|
143
157
|
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
144
|
-
units: Optional[
|
|
158
|
+
units: Optional[Units] = None
|
|
145
159
|
value: float
|
|
146
160
|
|
|
147
161
|
|
|
148
|
-
class
|
|
162
|
+
class Name45(Enum):
|
|
149
163
|
density = "density"
|
|
150
164
|
|
|
151
165
|
|
|
152
|
-
class
|
|
166
|
+
class Units36(Enum):
|
|
153
167
|
g_cm_3 = "g/cm^3"
|
|
154
168
|
|
|
155
169
|
|
|
156
170
|
class DensitySchema(BaseModel):
|
|
157
171
|
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
158
|
-
units: Optional[
|
|
172
|
+
units: Optional[Units36] = None
|
|
159
173
|
value: float
|
|
160
174
|
|
|
161
175
|
|
|
162
|
-
class
|
|
176
|
+
class Units37(Enum):
|
|
163
177
|
angstrom = "angstrom"
|
|
164
178
|
|
|
165
179
|
|
|
166
180
|
class ScalarSchema(BaseModel):
|
|
167
|
-
units: Optional[
|
|
181
|
+
units: Optional[Units37] = None
|
|
168
182
|
value: float
|
|
169
183
|
|
|
170
184
|
|
|
171
|
-
class
|
|
185
|
+
class Name46(Enum):
|
|
172
186
|
symmetry = "symmetry"
|
|
173
187
|
|
|
174
188
|
|
|
@@ -188,7 +202,7 @@ class SymmetrySchema(BaseModel):
|
|
|
188
202
|
name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
|
|
189
203
|
|
|
190
204
|
|
|
191
|
-
class
|
|
205
|
+
class Name47(Enum):
|
|
192
206
|
elemental_ratio = "elemental_ratio"
|
|
193
207
|
|
|
194
208
|
|
|
@@ -201,7 +215,7 @@ class ElementalRatio(BaseModel):
|
|
|
201
215
|
"""
|
|
202
216
|
|
|
203
217
|
|
|
204
|
-
class
|
|
218
|
+
class Name48(Enum):
|
|
205
219
|
p_norm = "p-norm"
|
|
206
220
|
|
|
207
221
|
|
|
@@ -214,7 +228,7 @@ class PNorm(BaseModel):
|
|
|
214
228
|
value: float
|
|
215
229
|
|
|
216
230
|
|
|
217
|
-
class
|
|
231
|
+
class Name49(Enum):
|
|
218
232
|
inchi = "inchi"
|
|
219
233
|
|
|
220
234
|
|
|
@@ -223,7 +237,7 @@ class InChIRepresentationSchema(BaseModel):
|
|
|
223
237
|
value: str
|
|
224
238
|
|
|
225
239
|
|
|
226
|
-
class
|
|
240
|
+
class Name50(Enum):
|
|
227
241
|
inchi_key = "inchi_key"
|
|
228
242
|
|
|
229
243
|
|
|
@@ -302,7 +316,7 @@ class FileSourceSchema(BaseModel):
|
|
|
302
316
|
"""
|
|
303
317
|
|
|
304
318
|
|
|
305
|
-
class
|
|
319
|
+
class Name51(Enum):
|
|
306
320
|
default = "default"
|
|
307
321
|
atomsTooClose = "atomsTooClose"
|
|
308
322
|
atomsOverlap = "atomsOverlap"
|
|
@@ -315,7 +329,7 @@ class Severity(Enum):
|
|
|
315
329
|
|
|
316
330
|
|
|
317
331
|
class MaterialConsistencyCheckSchema(BaseModel):
|
|
318
|
-
name:
|
|
332
|
+
name: Name51
|
|
319
333
|
"""
|
|
320
334
|
Name of the consistency check that is performed, which is listed in an enum.
|
|
321
335
|
"""
|