Calculations#
examples/pipeline/calculation.py#
import time
from ionworks import Ionworks
# Setup Ionworks client and pipeline
client = Ionworks()
# Provide parameters through an entry element first
entry_config = {
"values": {
"Maximum concentration in negative electrode [mol.m-3]": 3600 / 96485,
"Negative electrode loading [A.h.cm-2]": 2,
"Negative electrode thickness [m]": 0.3,
}
}
# Define calculation configuration
calculation_config = {
"calculation": "ElectrodeVolumeFractionFromLoading",
"electrode": "negative",
"method": "loading",
}
# Create pipeline config
pipeline_config = {
"elements": {
"entry": {**entry_config, "element_type": "entry"},
"calculation": {**calculation_config, "element_type": "calculation"},
},
}
# Submit pipeline
pipeline = client.pipeline.create(pipeline_config)
print(f"Pipeline ID: {pipeline.id}")
# Wait for completion
while True:
pipeline = client.pipeline.get(pipeline.id)
if pipeline.status == "completed":
result = client.pipeline.result(pipeline.id)
print(
"Parameter Values:",
result.element_results["calculation"]["parameter_values"],
)
break
elif pipeline.status == "failed":
print("Pipeline failed:", pipeline.error)
break
time.sleep(1)