# 教員ガイド

対象バージョン: **Cosmic Web Simulator 1.0.1**

## 1. 教材の目的

Cosmic Web Simulatorは、完成済みの計算を操作するだけでなく、学生が次の計算科学的な手順を経験するための教材です。

- 数値モデル、初期条件、境界条件、終了条件を区別する
- 物理法則と離散化手法を区別する
- 可視化と診断量を併用する
- 一度に一つの変数を変えて比較する
- 保存量と収束性を確認する
- 計算資源を見積もる
- 教育用モデルと研究用コードの違いを説明する

## 2. 想定授業

- 大学学部2年生以上
- プログラミング経験は不問
- 1回100分
- 個人、ペア、3–4名グループ
- BYODまたはPC教室
- GitHub Pages版または学内Webサーバー版

## 3. 100分授業の基本形

| 時間 | 内容 |
|---:|---|
| 0–10分 | 現象、学習目標、学生の予想 |
| 10–25分 | 数値モデルと主要式のミニ講義 |
| 25–35分 | 操作、物理量、終了条件の確認 |
| 35–60分 | 基準計算 |
| 60–78分 | 一変数比較 |
| 78–90分 | CSV・画像・考察の整理 |
| 90–98分 | ペアまたはグループ共有 |
| 98–100分 | Exit ticket |

初回50分では、二体問題、資源の事前確認、保存量、設定JSONの保存までに限定すると運用しやすくなります。

## 4. 14回構成例

| 回 | 主題 | 使用シナリオ | 主な成果物 |
|---:|---|---|---|
| 1（50分） | 数値実験とは何か | 二体軌道 | 初期予想と画像 |
| 2 | Euler法とLeapfrog法 | 二体Kepler軌道 | エネルギー誤差比較 |
| 3 | 計算量と近似 | Direct法とBarnes–Hut法 | 計算時間・誤差表 |
| 4 | 自己重力系 | Cold collapse | 半質量半径・virial ratio |
| 5 | 天体力学 | スイングバイまたは微惑星 | 速度変化または合体履歴 |
| 6 | 銀河力学 | 銀河衝突 | 近点前後の比較 |
| 7 | 宇宙論的重力多体系計算 | Cosmic web形成 | `z=49`と`z=0`の比較 |
| 8 | 分解能と物理モデル | CDM / WDM | 同一位相比較 |
| 9 | 粒子流体法 | SPH shock | 密度・圧力・Mach数 |
| 10 | 流体不安定性 | KH / RT | 界面の成長と混合 |
| 11 | 星形成の入口 | Jeans不安定ガス雲 | `t/t_ff`・`R50`・`v_r` |
| 12 | 円盤または超新星 | Gas disk / SNR | tracerまたはshock半径 |
| 13 | 離散化比較 | Fixed / moving mesh | 接触面幅・保存量 |
| 14 | 発表 | 自由選択 | 再現可能な発表資料 |

## 5. 受講者数別の運用

### 約10名

- 1人1条件を担当
- 2人組でseedまたは時間刻みを相互確認
- 全員が短い口頭発表

### 約20名

- 2人ペアを基本単位
- 4種類程度の比較条件を分担
- 診断CSVを共有フォルダへ提出

### 約30名

- 3人グループ
- 役割を操作、記録、検証に分ける
- クラスでseedを統一し、比較条件だけを分担
- 3分発表またはgallery形式

### 30名超

- 共有URLで初期設定を固定
- グループごとに比較変数を割り当てる
- 講義内は低解像度、事後学習は高解像度
- 提出物を設定JSON、PNG、短い考察に限定

## 6. 授業前の確認

1. 授業で使う教室・ネットワークから公開サイトを開く。
2. 配布予定の設定を最後まで実行する。
3. 低性能端末向けの代替条件を用意する。
4. 共有URLまたは設定JSONをLMSへ掲載する。
5. 科学的適用範囲を授業資料に明記する。
6. 画像だけでなく、最低一つの診断量を提出条件に含める。

## 7. シナリオ解説の利用

画面下部の解説と [SCENARIO_GUIDE.md](SCENARIO_GUIDE.md) には、各シナリオについて次を収録しています。

- 現象の概要と基礎知識
- 実装されている数値計算法
- 観察すべき色、ベクトル、保存量、構造指標
- 結果の妥当な解釈
- 教育用モデルとしての適用限界

課題は授業の到達目標に合わせて設定してください。

### 入門課題

- 既定条件で実行する
- 指定された物理量を表示する
- 初期状態と終了状態の違いを説明する

### 標準課題

- seedと初期条件を固定する
- 一つのパラメータだけを変える
- 診断CSVから数値を一つ引用する
- 適用限界を一つ説明する

### 発展課題

- 解像度または時間刻みを変えて収束を調べる
- 異なるソルバー・離散化を比較する
- 解析解または既知のscalingと比較する
- 計算負荷と誤差のtrade-offを議論する

## 8. 推奨する提出物

### 最小構成

- 初期画像
- 終了画像
- 設定JSON
- 観察結果の短い説明

### 標準構成

- 上記
- 診断CSV
- 一変数比較
- 数値誤差と適用限界

### 発展構成

- 二つ以上のソルバー比較
- 解像度または時間刻みの収束確認
- ColabによるCSV解析
- 理論予測または解析解との比較

## 9. 評価rubric例（100点）

| 観点 | 点 | 基準 |
|---|---:|---|
| 再現性 | 15 | version、設定JSON、seed、終了条件を記録 |
| 物理理解 | 20 | 粒子・cell・物理量を正しく説明 |
| 数値手法 | 20 | ソルバー、時間刻み、mesh、softening等を説明 |
| 比較実験 | 15 | 一変数比較と公平な条件設定 |
| 診断量 | 15 | 保存量・誤差・構造指標を使用 |
| 適用限界 | 10 | 教育用モデルと研究用計算を区別 |
| 表現 | 5 | 図、カラーバー、文章が明瞭 |

初心者については、専門的な結論の精密さだけでなく、観察、比較、検証の筋道を評価してください。

## 10. Exit ticket例

- 今日変更した数値パラメータは何か。
- 結果の違いは物理的な差か、数値的な差か。
- 最も信頼性が低い部分はどこか。
- 次に行うべき収束試験は何か。
- 研究用の3次元計算へ進むには何が必要か。

## 11. AI利用を認める場合

AIは次の補助に利用できます。

- 設定項目の意味を確認する
- CSVをColabで読むコードを作る
- グラフの軸や単位を整える
- 複数の仮説を挙げる
- エラー原因の候補を整理する

学生には次を求めます。

- AI出力を実際の診断量と照合する
- 使用した設定と数値を明示する
- 自分の観察に基づいて説明を書き直す
- 未実装の物理機能を含む説明になっていないか確認する

## 12. 超新星を扱う際の注意

中心天体の分類と爆発後の流体膨張を分けて説明してください。

- Compact-remnant explorerは教育用prescription
- SPHは主にejectaと周囲媒質の膨張を計算
- 中性子星／ブラックホールはSPHが第一原理から決定した結果ではない
- 初期質量だけで単調な境界を置かない
- 爆発エネルギー、金属量、fallbackのモデル依存性を説明する

## 13. Moving meshを扱う際の注意

本アプリのmoving meshは、1次元有限体積法と移動control volumeを理解するための教材です。

観察項目:

- cell幅とface速度
- ALE flux `F - wU`
- fixed meshで接触面がcellを横切る様子
- moving meshがbulk flowへ追随する様子
- 接触面幅と保存量

2次元・3次元Voronoi mesh、mesh regularization、高次再構成は含まれません。

## 14. 端末性能に応じた設定

### 軽量設定

- Cosmology: `16³`, PM `16³`
- Barnes–Hut: 300–500 particles
- SPH 2D: 400–900 particles
- SPH 3D: 125–343 particles
- Moving mesh: 128 cells
- Density display: 64–96 grid
- Render limit: 10,000
- Worker: Autoまたは1–2

### 比較的高性能な端末

- Cosmology: `32³`、必要に応じて`48³`
- PM: BalancedまたはResolution
- Barnes–Hut: 2,000–10,000 particles
- SPH 2D: 1,600–4,000 particles
- SPH 3D: 729–2,000 particles

必ず授業前に同じ端末で実測batch時間を確認してください。

## 15. 安全な科学的表現

推奨する表現:

- 「この教育用モデルでは…」
- 「この解像度とseedでは…」
- 「診断量Xは増加した…」
- 「時間刻みを半分にしても傾向は維持された…」
- 「現実の天体へ適用するにはYが不足する…」

避ける表現:

- 「宇宙は必ずこの形になる」
- 「20太陽質量なら必ず中性子星になる」
- 「粒子が星になった」
- 「見た目が同じなのでソルバーは同じ精度」
- 「LOWなので計算は速い」

## 16. カスタマイズ

- `src/education/scenarioGuides.ts`: シナリオ解説
- `src/core/config.ts`: 既定設定
- `src/*/initialConditions.ts`: 初期条件
- `public/index.html`: UI
- `docs/`: 利用者・教員・技術文書

変更後は必ず次を実行します。

```bash
npm run verify
```
