メインコンテンツへスキップ
ionworks-api Python パッケージは、最適化をプログラムから実行・管理するためのサブクライアントを提供します。インストールと認証についてはPython API クライアントページを参照してください。

最適化の実行

from ionworks import Ionworks

# Reads IONWORKS_API_KEY and IONWORKS_PROJECT_ID from the environment.
# project_id is auto-injected into payloads that don't specify it.
client = Ionworks()

optimization = client.optimization.run({
    "name": "Electrode thickness optimization",
    "parameterized_model_id": "your-parameterized-model-id",
    "protocol_experiment": {
        "protocol": "...",
        "name": "1C Discharge",
    },
    "design_parameters": {
        "Positive electrode thickness [m]": {
            "bounds": [50e-6, 100e-6],
        },
    },
    "objectives": {
        "Discharge capacity [A.h]": {"type": "maximize"},
    },
})

print(f"Optimization ID: {optimization.id}")
print(f"Job ID: {optimization.job_id}")

完了を待機する

result = client.optimization.wait_for_completion(
    "your-optimization-id",
    timeout=600,        # seconds (default: 600)
    poll_interval=3,    # seconds between polls (default: 3)
    verbose=True,       # print status updates (default: True)
)
最適化が失敗したときに例外を発生させる代わりに結果の dict を取得するには、raise_on_failure=False を設定します。

最適化の一覧

# List optimizations in the default project
# (set IONWORKS_PROJECT_ID or pass project_id= to Ionworks(...))
optimizations = client.optimization.list()

# Override the project for a single call
optimizations = client.optimization.list(project_id="other-project-id")

# Paginate results
optimizations = client.optimization.list(limit=10, offset=0)
project_id を省略すると、client.optimization.run.list は Ionworks クライアントに設定されたデフォルトプロジェクトを使用します。

最適化の取得

最適化レコードとその関連ジョブステータスを返します。
result = client.optimization.get("your-optimization-id")
print(result["optimization"])
print(result["job"])

最適化の更新

optimization = client.optimization.update("your-optimization-id", {
    "name": "Electrode optimization v2",
    "description": "Updated bounds",
})

最適化のキャンセル

result = client.optimization.cancel("your-optimization-id")
どのリソースの ID も、Ionworks Studio Web アプリから確認できます。リソースの詳細ページに移動すると、URL に ID が表示されます。