mat3ra-esse 2025.4.17.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 +68 -46
- 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 -16
- mat3ra/esse/models/properties_directory/structural/lattice/lattice_vectors.py +10 -11
- 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.17.post0.dist-info → mat3ra_esse-2025.4.22.post0.dist-info}/METADATA +1 -1
- {mat3ra_esse-2025.4.17.post0.dist-info → mat3ra_esse-2025.4.22.post0.dist-info}/RECORD +87 -49
- {mat3ra_esse-2025.4.17.post0.dist-info → mat3ra_esse-2025.4.22.post0.dist-info}/WHEEL +1 -1
- {mat3ra_esse-2025.4.17.post0.dist-info → mat3ra_esse-2025.4.22.post0.dist-info}/licenses/LICENSE.md +0 -0
- {mat3ra_esse-2025.4.17.post0.dist-info → mat3ra_esse-2025.4.22.post0.dist-info}/top_level.txt +0 -0
|
@@ -10,33 +10,55 @@ from typing import List, Optional, Union
|
|
|
10
10
|
from pydantic import BaseModel, Field, 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
|
-
|
|
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
|
+
"""
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: properties_directory/structural/basis/atomic_constraint.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 AtomicConstraintSchema(BaseModel):
|
|
13
|
+
value: List[bool] = Field(..., title="vector boolean 3d schema")
|
|
14
|
+
"""
|
|
15
|
+
value of this entry
|
|
16
|
+
"""
|
|
17
|
+
id: int
|
|
18
|
+
"""
|
|
19
|
+
integer id of this entry
|
|
20
|
+
"""
|
|
@@ -4,27 +4,24 @@
|
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
-
from
|
|
8
|
-
from typing import List, Optional, Union
|
|
7
|
+
from typing import List
|
|
9
8
|
|
|
10
|
-
from pydantic import BaseModel, Field
|
|
9
|
+
from pydantic import BaseModel, Field, RootModel
|
|
11
10
|
|
|
12
11
|
|
|
13
|
-
class
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
id: Optional[int] = None
|
|
12
|
+
class AtomicConstraintSchema(BaseModel):
|
|
13
|
+
value: List[bool] = Field(..., title="vector boolean 3d schema")
|
|
14
|
+
"""
|
|
15
|
+
value of this entry
|
|
16
|
+
"""
|
|
17
|
+
id: int
|
|
20
18
|
"""
|
|
21
19
|
integer id of this entry
|
|
22
20
|
"""
|
|
23
21
|
|
|
24
22
|
|
|
25
|
-
class
|
|
26
|
-
|
|
27
|
-
values: Optional[List[AtomicVectorsSchemaItem]] = Field(None, title="atomic vectors schema")
|
|
23
|
+
class AtomicConstraintsSchema(RootModel[List[AtomicConstraintSchema]]):
|
|
24
|
+
root: List[AtomicConstraintSchema] = Field(..., title="atomic constraints schema")
|
|
28
25
|
"""
|
|
29
|
-
|
|
26
|
+
atomic constraints schema
|
|
30
27
|
"""
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: properties_directory/structural/basis/atomic_constraints_property.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, Field
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class Name(Enum):
|
|
14
|
+
atomic_constraints = "atomic_constraints"
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class AtomicConstraintSchema(BaseModel):
|
|
18
|
+
value: List[bool] = Field(..., title="vector boolean 3d schema")
|
|
19
|
+
"""
|
|
20
|
+
value of this entry
|
|
21
|
+
"""
|
|
22
|
+
id: int
|
|
23
|
+
"""
|
|
24
|
+
integer id of this entry
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class AtomicConstraintsPropertySchema(BaseModel):
|
|
29
|
+
name: Optional[Name] = None
|
|
30
|
+
values: Optional[List[AtomicConstraintSchema]] = Field(None, title="atomic constraints schema")
|
|
31
|
+
"""
|
|
32
|
+
atomic constraints schema
|
|
33
|
+
"""
|
|
@@ -4,11 +4,17 @@
|
|
|
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
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
class
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
class AtomicCoordinateSchema(BaseModel):
|
|
13
|
+
value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
|
|
14
|
+
"""
|
|
15
|
+
value of this entry
|
|
16
|
+
"""
|
|
17
|
+
id: int
|
|
18
|
+
"""
|
|
19
|
+
integer id of this entry
|
|
20
|
+
"""
|
|
@@ -4,35 +4,24 @@
|
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
-
from
|
|
8
|
-
from typing import List, Optional, Union
|
|
7
|
+
from typing import List
|
|
9
8
|
|
|
10
|
-
from pydantic import BaseModel, Field
|
|
9
|
+
from pydantic import BaseModel, Field, RootModel
|
|
11
10
|
|
|
12
11
|
|
|
13
|
-
class
|
|
14
|
-
|
|
12
|
+
class AtomicCoordinateSchema(BaseModel):
|
|
13
|
+
value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
|
|
14
|
+
"""
|
|
15
|
+
value of this entry
|
|
16
|
+
"""
|
|
17
|
+
id: int
|
|
18
|
+
"""
|
|
19
|
+
integer id of this entry
|
|
20
|
+
"""
|
|
15
21
|
|
|
16
22
|
|
|
17
|
-
class
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
class Units(Enum):
|
|
23
|
-
km = "km"
|
|
24
|
-
m = "m"
|
|
25
|
-
cm = "cm"
|
|
26
|
-
mm = "mm"
|
|
27
|
-
um = "um"
|
|
28
|
-
nm = "nm"
|
|
29
|
-
angstrom = "angstrom"
|
|
30
|
-
a_u_ = "a.u."
|
|
31
|
-
bohr = "bohr"
|
|
32
|
-
pm = "pm"
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
class AtomicCoordinates(BaseModel):
|
|
36
|
-
name: Optional[Name] = None
|
|
37
|
-
values: Optional[List[AtomicCoordinate]] = None
|
|
38
|
-
units: Optional[Units] = None
|
|
23
|
+
class AtomicCoordinatesSchema(RootModel[List[AtomicCoordinateSchema]]):
|
|
24
|
+
root: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
|
|
25
|
+
"""
|
|
26
|
+
atomic coordinates schema
|
|
27
|
+
"""
|
|
@@ -4,16 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
-
from typing import Optional
|
|
8
|
-
|
|
9
7
|
from pydantic import BaseModel
|
|
10
8
|
|
|
11
9
|
|
|
12
|
-
class
|
|
13
|
-
id: float
|
|
10
|
+
class AtomicElementSchema(BaseModel):
|
|
14
11
|
value: str
|
|
15
|
-
occurrence: Optional[float] = None
|
|
16
12
|
"""
|
|
17
|
-
|
|
13
|
+
value of this entry
|
|
14
|
+
"""
|
|
15
|
+
id: int
|
|
16
|
+
"""
|
|
17
|
+
integer id of this entry
|
|
18
18
|
"""
|
|
19
|
-
oxidationState: Optional[float] = None
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: properties_directory/structural/basis/atomic_elements.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, RootModel
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class AtomicElementSchema(BaseModel):
|
|
13
|
+
value: str
|
|
14
|
+
"""
|
|
15
|
+
value of this entry
|
|
16
|
+
"""
|
|
17
|
+
id: int
|
|
18
|
+
"""
|
|
19
|
+
integer id of this entry
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class AtomicElementsSchema(RootModel[List[AtomicElementSchema]]):
|
|
24
|
+
root: List[AtomicElementSchema] = Field(..., title="atomic elements schema")
|
|
25
|
+
"""
|
|
26
|
+
atomic elements schema
|
|
27
|
+
"""
|
|
@@ -4,11 +4,17 @@
|
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
-
from typing import
|
|
7
|
+
from typing import Union
|
|
8
8
|
|
|
9
|
-
from pydantic import BaseModel,
|
|
9
|
+
from pydantic import BaseModel, conint
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
class
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
class AtomicLabelSchema(BaseModel):
|
|
13
|
+
value: Union[Union[int, str, float], conint(ge=1, le=9)]
|
|
14
|
+
"""
|
|
15
|
+
value of this entry
|
|
16
|
+
"""
|
|
17
|
+
id: int
|
|
18
|
+
"""
|
|
19
|
+
integer id of this entry
|
|
20
|
+
"""
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: properties_directory/structural/basis/atomic_labels.json
|
|
3
|
+
# version: 0.28.5
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import List, Union
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel, Field, RootModel, conint
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class AtomicLabelSchema(BaseModel):
|
|
13
|
+
value: Union[Union[int, str, float], conint(ge=1, le=9)]
|
|
14
|
+
"""
|
|
15
|
+
value of this entry
|
|
16
|
+
"""
|
|
17
|
+
id: int
|
|
18
|
+
"""
|
|
19
|
+
integer id of this entry
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class AtomicLabelsSchema(RootModel[List[AtomicLabelSchema]]):
|
|
24
|
+
root: List[AtomicLabelSchema] = Field(..., title="atomic labels schema")
|
|
25
|
+
"""
|
|
26
|
+
atomic labels schema
|
|
27
|
+
"""
|
|
@@ -10,8 +10,8 @@ from typing import List, Optional
|
|
|
10
10
|
from pydantic import BaseModel, Field, RootModel
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
class
|
|
14
|
-
id:
|
|
13
|
+
class ObjectWithId(BaseModel):
|
|
14
|
+
id: int
|
|
15
15
|
"""
|
|
16
16
|
integer id of this entry
|
|
17
17
|
"""
|
|
@@ -29,7 +29,7 @@ class BondType(Enum):
|
|
|
29
29
|
|
|
30
30
|
|
|
31
31
|
class BondsSchemaItem(BaseModel):
|
|
32
|
-
atomPair: Optional[List[
|
|
32
|
+
atomPair: Optional[List[ObjectWithId]] = Field(None, max_length=2, min_length=2, title="array of ids")
|
|
33
33
|
"""
|
|
34
34
|
indices of the two connected atoms
|
|
35
35
|
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: properties_directory/structural/basis/units_enum.json
|
|
3
|
+
# version: 0.28.5
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from enum import Enum
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class BasisUnitsEnum(Enum):
|
|
11
|
+
crystal = "crystal"
|
|
12
|
+
cartesian = "cartesian"
|
|
@@ -10,20 +10,20 @@ from typing import List, Optional
|
|
|
10
10
|
from pydantic import BaseModel, Field
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
class
|
|
13
|
+
class LatticeVectorsUnitsEnum(Enum):
|
|
14
14
|
angstrom = "angstrom"
|
|
15
15
|
bohr = "bohr"
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
class
|
|
18
|
+
class LatticeVectorsSchema(BaseModel):
|
|
19
|
+
a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
20
|
+
b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
21
|
+
c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
19
22
|
alat: Optional[float] = 1
|
|
20
23
|
"""
|
|
21
24
|
lattice parameter for fractional coordinates
|
|
22
25
|
"""
|
|
23
|
-
units: Optional[
|
|
24
|
-
a: List[float] = Field(..., max_length=3, min_length=3, title="array of 3 number elements schema")
|
|
25
|
-
b: List[float] = Field(..., max_length=3, min_length=3, title="array of 3 number elements schema")
|
|
26
|
-
c: List[float] = Field(..., max_length=3, min_length=3, title="array of 3 number elements schema")
|
|
26
|
+
units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
class LatticeTypeEnum(Enum):
|
|
@@ -43,28 +43,22 @@ class LatticeTypeEnum(Enum):
|
|
|
43
43
|
RHL = "RHL"
|
|
44
44
|
|
|
45
45
|
|
|
46
|
-
class
|
|
46
|
+
class LatticeUnitsLengthEnum(Enum):
|
|
47
47
|
angstrom = "angstrom"
|
|
48
48
|
bohr = "bohr"
|
|
49
49
|
|
|
50
50
|
|
|
51
|
-
class
|
|
51
|
+
class LatticeUnitsAngleEnum(Enum):
|
|
52
52
|
degree = "degree"
|
|
53
53
|
radian = "radian"
|
|
54
54
|
|
|
55
55
|
|
|
56
56
|
class LatticeUnitsSchema(BaseModel):
|
|
57
|
-
length: Optional[
|
|
58
|
-
angle: Optional[
|
|
57
|
+
length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
|
|
58
|
+
angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
|
|
59
59
|
|
|
60
60
|
|
|
61
61
|
class LatticeSchema(BaseModel):
|
|
62
|
-
vectors: Optional[LatticeExplicitUnit] = Field(None, title="lattice explicit unit")
|
|
63
|
-
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
64
|
-
units: Optional[LatticeUnitsSchema] = Field(
|
|
65
|
-
default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
66
|
-
title="Lattice units schema",
|
|
67
|
-
)
|
|
68
62
|
a: float
|
|
69
63
|
"""
|
|
70
64
|
length of the first lattice vector
|
|
@@ -89,3 +83,9 @@ class LatticeSchema(BaseModel):
|
|
|
89
83
|
"""
|
|
90
84
|
angle between first and third lattice vector
|
|
91
85
|
"""
|
|
86
|
+
vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema")
|
|
87
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
88
|
+
units: Optional[LatticeUnitsSchema] = Field(
|
|
89
|
+
default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
90
|
+
title="Lattice units schema",
|
|
91
|
+
)
|
|
@@ -5,22 +5,21 @@
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
7
|
from enum import Enum
|
|
8
|
-
from typing import
|
|
8
|
+
from typing import Optional
|
|
9
9
|
|
|
10
10
|
from pydantic import BaseModel, Field
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
class
|
|
13
|
+
class LatticeUnitsLengthEnum(Enum):
|
|
14
14
|
angstrom = "angstrom"
|
|
15
15
|
bohr = "bohr"
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
class
|
|
19
|
-
|
|
20
|
-
""
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
c: List[float] = Field(..., max_length=3, min_length=3, title="array of 3 number elements schema")
|
|
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")
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: properties_directory/structural/lattice/units/angle_enum.json
|
|
3
|
+
# version: 0.28.5
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from enum import Enum
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class LatticeUnitsAngleEnum(Enum):
|
|
11
|
+
degree = "degree"
|
|
12
|
+
radian = "radian"
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: properties_directory/structural/lattice/units/length_enum.json
|
|
3
|
+
# version: 0.28.5
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from enum import Enum
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class LatticeUnitsLengthEnum(Enum):
|
|
11
|
+
angstrom = "angstrom"
|
|
12
|
+
bohr = "bohr"
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: properties_directory/structural/lattice/vectors.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, Field
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class LatticeVectorsUnitsEnum(Enum):
|
|
14
|
+
angstrom = "angstrom"
|
|
15
|
+
bohr = "bohr"
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class LatticeVectorsSchema(BaseModel):
|
|
19
|
+
a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
20
|
+
b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
21
|
+
c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
22
|
+
alat: Optional[float] = 1
|
|
23
|
+
"""
|
|
24
|
+
lattice parameter for fractional coordinates
|
|
25
|
+
"""
|
|
26
|
+
units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: properties_directory/structural/lattice/vectors/units_enum.json
|
|
3
|
+
# version: 0.28.5
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from enum import Enum
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class LatticeVectorsUnitsEnum(Enum):
|
|
11
|
+
angstrom = "angstrom"
|
|
12
|
+
bohr = "bohr"
|
|
@@ -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, Optional
|
|
9
9
|
|
|
10
10
|
from pydantic import BaseModel, Field
|
|
11
11
|
|
|
@@ -14,9 +14,12 @@ class Name(Enum):
|
|
|
14
14
|
magnetic_moments = "magnetic_moments"
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
class
|
|
18
|
-
value:
|
|
19
|
-
|
|
17
|
+
class AtomicVectorSchema(BaseModel):
|
|
18
|
+
value: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
19
|
+
"""
|
|
20
|
+
value of this entry
|
|
21
|
+
"""
|
|
22
|
+
id: int
|
|
20
23
|
"""
|
|
21
24
|
integer id of this entry
|
|
22
25
|
"""
|
|
@@ -28,8 +31,5 @@ class Units(Enum):
|
|
|
28
31
|
|
|
29
32
|
class MagneticMoments(BaseModel):
|
|
30
33
|
name: Optional[Name] = None
|
|
31
|
-
values: Optional[List[
|
|
32
|
-
"""
|
|
33
|
-
array of objects containing integer id each
|
|
34
|
-
"""
|
|
34
|
+
values: Optional[List[AtomicVectorSchema]] = Field(None, title="atomic vectors schema")
|
|
35
35
|
units: Optional[Units] = None
|
|
@@ -14,12 +14,12 @@ class Name(Enum):
|
|
|
14
14
|
functional_group = "functional_group"
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
class
|
|
17
|
+
class ObjectWithId(BaseModel):
|
|
18
18
|
isConnector: Optional[bool] = None
|
|
19
19
|
"""
|
|
20
20
|
whether atom connects to atoms outside of functional group.
|
|
21
21
|
"""
|
|
22
|
-
id:
|
|
22
|
+
id: int
|
|
23
23
|
"""
|
|
24
24
|
integer id of this entry
|
|
25
25
|
"""
|
|
@@ -27,7 +27,7 @@ class AtomicId(BaseModel):
|
|
|
27
27
|
|
|
28
28
|
class FunctionalGroupPatternSchema(BaseModel):
|
|
29
29
|
name: Optional[Name] = None
|
|
30
|
-
atoms: Optional[List[
|
|
30
|
+
atoms: Optional[List[ObjectWithId]] = Field(None, title="array of ids")
|
|
31
31
|
"""
|
|
32
32
|
array of objects containing integer id each
|
|
33
33
|
"""
|
|
@@ -37,26 +37,26 @@ class FunctionalGroupPatternSchema(BaseModel):
|
|
|
37
37
|
"""
|
|
38
38
|
|
|
39
39
|
|
|
40
|
-
class
|
|
40
|
+
class Name54(Enum):
|
|
41
41
|
ring = "ring"
|
|
42
42
|
|
|
43
43
|
|
|
44
44
|
class RingPatternSchema(BaseModel):
|
|
45
|
-
name: Optional[
|
|
46
|
-
atoms: Optional[List[
|
|
45
|
+
name: Optional[Name54] = None
|
|
46
|
+
atoms: Optional[List[ObjectWithId]] = Field(None, title="array of ids")
|
|
47
47
|
"""
|
|
48
48
|
array of objects containing integer id each
|
|
49
49
|
"""
|
|
50
50
|
isAromatic: Optional[bool] = None
|
|
51
51
|
|
|
52
52
|
|
|
53
|
-
class
|
|
53
|
+
class Name55(Enum):
|
|
54
54
|
special_bond = "special_bond"
|
|
55
55
|
|
|
56
56
|
|
|
57
57
|
class SpecialBondPatternSchema(BaseModel):
|
|
58
|
-
name: Optional[
|
|
59
|
-
atoms: Optional[List[
|
|
58
|
+
name: Optional[Name55] = None
|
|
59
|
+
atoms: Optional[List[ObjectWithId]] = Field(None, title="array of ids")
|
|
60
60
|
"""
|
|
61
61
|
array of objects containing integer id each
|
|
62
62
|
"""
|