> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ionworks.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 熱物性

> ionworks-schema を使ってアレニウス型の温度依存性と熱容量の計算を構成する方法を説明します

熱物性の計算は温度依存性(アレニウスフィット)と熱容量の取り扱いをカバーします。基礎となる物理は、[熱計算 (英語ガイド)](/guide/calculations/thermal) を参照してください。

## 利用可能な計算

| スキーマ                                                                       | 用途                                            |
| -------------------------------------------------------------------------- | --------------------------------------------- |
| `iws.calculations.ArrheniusLogLinear(data=..., reference_temperature=...)` | $(T, k)$ の測定表から $(k_{\text{ref}}, E_a)$ をフィット |
| `iws.calculations.SpecificHeatCapacity()`                                  | セルの集中熱容量 \[J/K] と比熱 \[J/(kg·K)] をセル質量で換算      |
| `iws.calculations.LumpedHeatCapacityAndDensity()`                          | 各成分の比熱と密度をセルレベルの集中値に設定                        |

## アレニウスパラメータのフィッティング

```python theme={null}
import ionworks_schema as iws
from ionworks import Ionworks

arrhenius = iws.calculations.ArrheniusLogLinear(
    data={
        "Temperature [K]": [273, 298, 323, 348],
        "Negative particle diffusivity [m2.s-1]": [1e-14, 3e-14, 8e-14, 2e-13],
    },
    reference_temperature=298.15,
)

pipeline = iws.Pipeline({"D_neg arrhenius": arrhenius})

client = Ionworks()
submission = client.pipeline.create(pipeline)
client.pipeline.wait_for_completion(submission.id)
result = client.pipeline.result(submission.id)
```

`include_func=True` を指定すると、測定温度に限らず任意の温度で評価できる補間関数も返されます。

`data` フィールドには、上の例のような列辞書、裸の pandas または polars `DataFrame`、文字列参照のいずれも渡せます。アップロード済みの測定データを参照するには `"db:<id>"` を使います。`"file:..."` と `"folder:..."` はローカルマシンから読み取られ、送信時に API クライアントによって config へインライン化されるため、ローカル実行でも Ionworks にフィットを送信する場合でも動作します。裸の `DataFrame` と同じ 1,000 行のインライン上限が適用されます(より大きなデータセットは測定としてアップロードして `"db:<id>"` を使ってください)。裸の `DataFrame` はシリアライズ時に自動的にラップされるため、`data=df` と `data={"data": df}` は等価です。

## 比熱

```python theme={null}
import ionworks_schema as iws

known = iws.direct_entries.DirectEntry(
    parameters={
        "Cell heat capacity [J.K-1]": 50.0,
        "Cell mass [kg]": 0.05,
    },
)

cp = iws.calculations.SpecificHeatCapacity()

pipeline = iws.Pipeline({"known": known, "cp": cp})
```

結果として `"Cell specific heat capacity [J.kg-1.K-1]"` がパラメータセットに追加されます。

## 集中熱モデル

単一温度のセルモデル向けには、`LumpedHeatCapacityAndDensity` がセルレベルの比熱と密度を各成分に伝播します。集中熱解析を行うパイプラインでは、`SpecificHeatCapacity` の後に置きます。

```python theme={null}
pipeline = iws.Pipeline({
    "known": known,
    "cp": iws.calculations.SpecificHeatCapacity(),
    "lumped": iws.calculations.LumpedHeatCapacityAndDensity(),
})
```

<CardGroup cols={2}>
  <Card title="熱計算 (理論)" icon="fire" href="/guide/calculations/thermal">
    アレニウス理論、発熱、集中 vs 分布モデル (英語ガイド)。
  </Card>

  <Card title="パイプライン概要" icon="diagram-project" href="/ja/pipelines/overview">
    熱計算がパイプラインでどう連結されるか。
  </Card>
</CardGroup>
