Skip to content

Commit

Permalink
Merge pull request #893 from materialsproject/fix-ml-doc
Browse files Browse the repository at this point in the history
Fix `MLDoc` broken schema
  • Loading branch information
janosh committed Nov 16, 2023
2 parents f4d3132 + 0758342 commit 39edc68
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 7 deletions.
2 changes: 1 addition & 1 deletion emmet-core/emmet/core/elasticity.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ class ComplianceTensorDoc(BaseModel):

class BulkModulus(BaseModel):
voigt: Optional[float] = Field(None, description="Bulk modulus Voigt average (GPa)")
reuss: Optional[float] = Field(None, description="Bulk modulus Reuss average (Gpa)")
reuss: Optional[float] = Field(None, description="Bulk modulus Reuss average (GPa)")
vrh: Optional[float] = Field(
None, description="Bulk modulus Voigt-Reuss-Hill average (GPa)"
)
Expand Down
5 changes: 3 additions & 2 deletions emmet-core/emmet/core/fermi.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
from typing import List, Optional
from datetime import datetime
from typing import List, Optional

from monty.json import MontyDecoder
from pydantic import field_validator, BaseModel, Field
from pydantic import BaseModel, Field, field_validator


class FermiDoc(BaseModel):
Expand Down
15 changes: 11 additions & 4 deletions emmet-core/emmet/core/ml.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,9 @@ class MLDoc(ElasticityDoc):
- heat_capacities (list[float]): heat capacities at constant volume in eV/K
- elasticity
- elastic_tensor (ElasticTensorDoc): pydantic model from emmet.core.elasticity
- shear_modulus (ShearModulus): Voigt-Reuss-Hill shear modulus (single float)
- bulk_modulus (BulkModulus): Voigt-Reuss-Hill bulk modulus (single float)
- youngs_modulus (float): Young's modulus
- shear_modulus (ShearModulus): Voigt-Reuss-Hill shear modulus (single float in eV/Angstrom^3)
- bulk_modulus (BulkModulus): Voigt-Reuss-Hill bulk modulus (single float in eV/Angstrom^3)
- youngs_modulus (float): Young's modulus (single float in eV/Angstrom^3)
"""

property_name: str = "ml"
Expand Down Expand Up @@ -155,7 +155,14 @@ def __init__(
results = {}
for prop_cls in (RelaxCalc, PhononCalc, EOSCalc, ElasticityCalc):
kwds = (prop_kwargs or {}).get(prop_cls.__name__, {})
results.update(prop_cls(calculator, **kwds).calc(structure))
output = prop_cls(calculator, **kwds).calc(structure)
# extract thermal_properties from PhononCalc output
if isinstance(output, dict) and {*output} == {
"phonon",
"thermal_properties",
}:
output = output["thermal_properties"]
results.update(output)

for key, val in results.items():
# convert arrays to lists
Expand Down

0 comments on commit 39edc68

Please sign in to comment.