We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Hirao-Y/poker_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
# 📋 PHYSICS_REFERENCE.md - 放射線遮蔽物理リファレンス
**⚛️ 対象**: 放射線遮蔽計算の物理的背景を理解したい研究者
**📚 マニュアル階層**: エッセンシャル層
**🔧 対応システム**: Poker MCP Server v1.1.0
**📅 最終更新**: 2025年9月8日
---
## 📖 本書の位置づけ
この文書は**エッセンシャル層**の物理リファレンスです。
### 🎯 対象読者
- **放射線遮蔽研究者**: 計算の物理的背景を深く理解したい
- **原子力・医療物理学研究者**: 遮蔽理論の実装を確認したい
- **設計エンジニア**: 計算パラメータの物理的意味を理解したい
- **品質保証担当者**: 結果の妥当性を物理的に検証したい
### 📋 読み方ガイド
- **基本操作習得**: [ESSENTIAL_GUIDE.md](ESSENTIAL_GUIDE.md)と併用
- **日常参照**: [QUICK_REFERENCE.md](QUICK_REFERENCE.md)で操作確認
- **実践応用**: [RESEARCH_WORKFLOWS.md](RESEARCH_WORKFLOWS.md)で具体例
---
## ⚛️ 放射線遮蔽理論の基礎
### 🌟 **遮蔽計算の物理的意味**
**遮蔽とは何か?**
放射線遮蔽とは、**放射線と物質の相互作用により放射線強度を減衰させる物理現象**です。
```
入射放射線 → [遮蔽材] → 透過放射線
I₀ I
```
**基本減衰法則**:
```
I = I₀ × e^(-μt) × B(μt, E)
```
- **I₀**: 入射強度
- **I**: 透過強度
- **μ**: 線減衰係数 (cm⁻¹)
- **t**: 遮蔽厚さ (cm)
- **B(μt, E)**: ビルドアップ係数
### 🔬 **放射線と物質の相互作用機構**
#### **ガンマ線の相互作用**
**1. 光電効果 (Photoelectric Effect)**
```
γ + 原子 → 電子 + イオン
```
- **支配領域**: 低エネルギー (<0.5 MeV)
- **断面積 ∝ Z⁵/E^3.5**: 原子番号の5乗に比例
- **完全吸収**: ガンマ線が完全に消失
**2. コンプトン散乱 (Compton Scattering)**
```
γ + e⁻ → γ' + e⁻
```
- **支配領域**: 中間エネルギー (0.5-10 MeV)
- **断面積 ∝ Z**: 原子番号に比例
- **部分的減衰**: エネルギー転移と方向変化
**3. 電子対生成 (Pair Production)**
```
γ → e⁺ + e⁻ (E > 1.022 MeV)
```
- **支配領域**: 高エネルギー (>10 MeV)
- **断面積 ∝ Z²**: 原子番号の2乗に比例
- **閾値**: 1.022 MeV (電子の静止質量エネルギーの2倍)
#### **中性子の相互作用**
**1. 弾性散乱 (Elastic Scattering)**
```
n + 核 → n + 核
```
- **減速**: 中性子エネルギーの減少
- **軽核が効果的**: 水素、ベリリウム、炭素
**2. 非弾性散乱 (Inelastic Scattering)**
```
n + 核 → n + 核* → n + 核 + γ
```
- **高エネルギー中性子**: >1 MeV
- **ガンマ線生成**: 二次ガンマ線の考慮が必要
**3. 吸収反応 (Absorption)**
```
n + 核 → 生成物 + エネルギー
```
- **(n,γ)反応**: 熱中性子の主要反応
- **(n,α), (n,p)反応**: 軽核での反応
- **核分裂**: 重核での反応
### 📊 **減衰係数の物理的意味**
#### **線減衰係数 μ (cm⁻¹)**
**定義**: 単位厚さあたりの相互作用確率
```
μ = Σσᵢ × Nᵢ
```
- **σᵢ**: i番目の相互作用の断面積 (cm²)
- **Nᵢ**: 原子数密度 (個/cm³)
**物理的意味**:
- **μ⁻¹ = 平均自由行程**: 相互作用までの平均距離
- **材料依存**: 密度・原子番号・エネルギーに依存
- **加法性**: μ_total = μ_photo + μ_Compton + μ_pair
#### **質量減衰係数 μ/ρ (cm²/g)**
**利点**: 密度に依存しない材料固有の物性値
```
μ/ρ = (σ_photo + σ_Compton + σ_pair) × (N_A/A)
```
- **N_A**: アボガドロ数
- **A**: 原子量
**実用性**:
- **材料比較**: 異なる密度の材料を統一比較
- **データベース**: NIST, ENDFライブラリで標準化
- **Poker MCP内蔵**: 主要材料のμ/ρデータベース
### 🏗️ **ビルドアップ係数の物理**
#### **ビルドアップ現象とは**
**物理的意味**: 散乱により**元の方向に戻る放射線の寄与**
```
直接線: I₀ × e^(-μt) (1次透過)
散乱線: I₀ × e^(-μt) × [B(μt) - 1] (多重散乱)
```
**総線量**: 直接線 + 散乱線 = I₀ × e^(-μt) × B(μt)
#### **ビルドアップ係数の計算式**
**Taylor近似式** (Poker MCP採用):
```
B(μt, E) = 1 + (b-1) × μt × e^(-αμt)
```
- **b**: 材料・エネルギー依存パラメータ
- **α**: 形状係数 (通常 α=1)
- **μt**: 光学的厚さ
**Berger近似式** (高精度):
```
B(μt, E) = A₁×e^(-α₁μt) + A₂×e^(-α₂μt)
```
#### **材料別ビルドアップ特性**
| **材料** | **b値@1MeV** | **特徴** | **用途** |
|---------|-------------|---------|---------|
| **鉛** | 2.5 | 低ビルドアップ | 高密度遮蔽 |
| **鉄** | 3.2 | 中程度 | 構造材兼用 |
| **コンクリート** | 4.1 | 高ビルドアップ | 大型遮蔽 |
| **水** | 5.2 | 最高レベル | 生体遮蔽 |
**設計への影響**:
- **鉛**: 厚さ計算でビルドアップ効果は比較的小さい
- **コンクリート**: ビルドアップにより設計厚さが大幅増加
- **複合遮蔽**: 高Z + 低Z の組み合わせで最適化
---
## 📊 計算パラメータの物理的意味
### 🏗️ **立体形状パラメータの物理的背景**
#### **球体 (SPH) - 点線源遮蔽**
**物理的意味**: 点線源からの**等方的放射**に対する遮蔽
```yaml
bodies:
- name: spherical_shield
type: SPH
center: "0 0 0" # 線源位置
radius: 50 # 遮蔽半径 (cm)
```
**設計指針**:
- **線源中心**: 球の中心に配置で最適遮蔽
- **半径選定**: 最外殻での線量率が規制値以下
- **材料厚さ**: 半径 = 線源サイズ + 遮蔽厚さ
#### **円柱 (RCC) - ビーム遮蔽**
**物理的意味**: **指向性放射線**(医療用リニアック等)の遮蔽
```yaml
bodies:
- name: beam_stopper
type: RCC
bottom_center: "0 0 100" # ビーム軸開始点
height_vector: "0 0 200" # ビーム方向・長さ
radius: 30 # ビーム半径
```
**設計考慮**:
- **ビーム軸**: height_vectorで正確な方向設定
- **ペナンブラ**: radius は地物理的ビーム半径+安全余裕
- **漏洩放射**: 円柱側面からの漏洩も考慮
#### **直方体 (RPP) - 構造遮蔽**
**物理的意味**: **建築構造**との整合性を持つ遮蔽設計
```yaml
bodies:
- name: concrete_wall
type: RPP
min: "0 0 0" # 最小座標 (建築座標系)
max: "200 30 300" # 最大座標 (長×厚×高)
```
**建築連携**:
- **座標系**: 建築図面との整合性
- **施工性**: 型枠・鉄筋配置の考慮
- **継手**: 隣接構造物との接続部設計
#### **複雑形状 (BOX) - 任意配置遮蔽**
**物理的意味**: **任意方向・角度**での遮蔽配置
```yaml
bodies:
- name: angled_shield
type: BOX
vertex: "0 0 0" # 基準点
edge_1: "100 0 0" # X方向ベクトル
edge_2: "0 50 0" # Y方向ベクトル
edge_3: "0 0 20" # Z方向ベクトル
```
**応用例**:
- **傾斜遮蔽**: ビーム角度に合わせた最適配置
- **干渉回避**: 既存設備との干渉回避
- **最適化**: 材料使用量最小化設計
### 🧪 **材料物性パラメータの科学的背景**
#### **密度 ρ の物理的意義**
**基本関係**:
```
線減衰係数 μ = (μ/ρ) × ρ
```
**密度の影響**:
- **遮蔽効果**: 密度に比例して遮蔽能力向上
- **重量**: 構造設計・施工性への影響
- **コスト**: 材料費・運搬費・施工費
**材料選定例**:
| **材料** | **密度 (g/cm³)** | **μ/ρ @1MeV (cm²/g)** | **相対遮蔽効果** |
|---------|------------------|----------------------|------------------|
| **普通コンクリート** | 2.3 | 0.0636 | 1.0 |
| **重コンクリート** | 3.5 | 0.0636 | 1.52 |
| **鋼鉄** | 7.87 | 0.0565 | 3.04 |
| **鉛** | 11.34 | 0.107 | 8.29 |
#### **組成の影響**
**有効原子番号 Z_eff**:
```
Z_eff = (Σfᵢ × Zᵢ^n)^(1/n)
```
- **fᵢ**: 元素iの原子分率
- **Zᵢ**: 原子番号
- **n**: 相互作用依存 (光電効果:4.5, コンプトン:1)
**コンクリート組成例**:
```yaml
zones:
- body_name: concrete_wall
material: CONCRETE
density: 2.3
composition: # 重量%
H: 1.0 # 水分
C: 4.3 # 炭酸塩
O: 52.9 # 酸化物
Si: 33.7 # 珪酸塩
Ca: 4.4 # カルシウム
Fe: 1.4 # 鉄分
Al: 1.2 # アルミニウム
```
#### **温度依存性**
**密度の温度依存**:
```
ρ(T) = ρ₀ / (1 + β×(T-T₀))
```
- **β**: 線膨張係数
- **コンクリート**: β ≈ 1×10⁻⁵ /K
- **鋼鉄**: β ≈ 1.2×10⁻⁵ /K
**設計考慮**:
- **運転温度**: 原子炉遮蔽では高温時の密度低下
- **季節変動**: 外壁遮蔽の温度変化
- **安全余裕**: 最高温度での最小密度で設計
### ☢️ **線源パラメータの物理的特性**
#### **放射能と線源強度**
**放射能 A (Bq)**:
```
A = λ × N = (ln2/T₁/₂) × N
```
- **λ**: 崩壊定数 (s⁻¹)
- **N**: 原子数
- **T₁/₂**: 半減期
**線源強度 S (γ/s)**:
```
S = A × Y × BR
```
- **Y**: 放射線収率 (1崩壊あたりの放射線数)
- **BR**: 分岐比
**代表的線源の特性**:
| **核種** | **半減期** | **主ガンマ線 (MeV)** | **放射線収率** | **用途** |
|---------|-----------|-------------------|---------------|---------|
| **Co-60** | 5.27年 | 1.173, 1.333 | 2.0 | 医療・工業 |
| **Cs-137** | 30.2年 | 0.662 | 0.85 | 医療・標準 |
| **Ir-192** | 73.8日 | 0.295-0.612 | 2.2 | 工業照射 |
| **Am-241** | 432年 | 0.0596 | 0.36 | 煙感知器 |
#### **線源形状と分布**
**点線源 (POINT)**:
```yaml
sources:
- name: point_source
type: POINT
position: "0 0 0"
inventory:
- nuclide: "Co60"
radioactivity: 3.7e10 # 1 Ci
```
**物理的仮定**:
- **幾何学的点**: 線源サイズ << 計算距離
- **等方放射**: 4π方向への等確率放射
- **応用**: 密封線源、小型装置
**面線源・体積線源 (RPP, SPH, RCC)**:
```yaml
sources:
- name: distributed_source
type: RPP
geometry:
min: "0 0 0"
max: "10 10 10"
division:
edge_1: {type: "UNIFORM", number: 5}
edge_2: {type: "UNIFORM", number: 5}
edge_3: {type: "UNIFORM", number: 5}
```
**分布特性**:
- **一様分布**: 均等な密度分布
- **ガウス分布**: 中心集中型分布
- **応用**: 燃料集合体、廃棄物容器
#### **エネルギースペクトル**
**単色線源**:
```
E = E₀ (固定エネルギー)
```
**多色線源**:
```
S(E) = ΣSᵢ × δ(E - Eᵢ)
```
**連続スペクトル**:
```
S(E) = A × f(E) # f(E): スペクトル形状関数
```
**制動放射スペクトル**:
```
f(E) = 1/E (近似, E << E_max)
```
### 🔍 **計算制御パラメータの意義**
#### **カットオフレート**
**物理的意味**: **無視可能な寄与度の閾値**
```yaml
sources:
- name: source1
cutoff_rate: 0.01 # 1%以下の寄与は無視
```
**効果**:
- **計算効率**: 低寄与領域の計算省略
- **精度バランス**: 精度 vs 計算時間のトレードオフ
- **推奨値**: 通常 0.001-0.01 (0.1-1%)
#### **分割パラメータ**
**物理的意味**: **線源の空間離散化精度**
```yaml
division:
edge_1:
type: "UNIFORM" # 一様分割
number: 10 # 分割数
min: 0.0 # 開始位置 (0-1)
max: 1.0 # 終了位置 (0-1)
```
**分割タイプ**:
- **UNIFORM**: 等間隔分割 - 一様分布線源
- **GAUSS_CENTER**: 中心集中 - ガウス分布近似
- **GAUSS_FIRST/LAST**: 端部集中 - 境界効果考慮
**分割数の選定**:
```
推奨分割数 = max(5, L/λ_mfp × 2)
```
- **L**: 線源寸法
- **λ_mfp**: 平均自由行程
---
## 🔢 計算精度と品質保証
### ⚖️ **数値計算の精度評価**
#### **計算誤差の分類**
**1. 統計誤差 (Statistical Error)**
```
相対誤差 = σ/μ = 1/√N
```
- **N**: サンプル数(計算回数)
- **モンテカルロ法**: 固有の統計変動
- **改善法**: 計算回数増加、バリアンス低減
**2. 系統誤差 (Systematic Error)**
```
系統誤差 = |計算値 - 真値| / 真値
```
- **原因**: 数値計算手法、物理モデル近似
- **評価**: ベンチマーク問題との比較
- **制御**: 高精度手法の採用
**3. 離散化誤差 (Discretization Error)**
```
離散化誤差 ∝ (Δx)ⁿ
```
- **Δx**: メッシュサイズ、時間刻み
- **n**: 計算手法の次数
- **対策**: メッシュ細分化、高次手法
#### **Poker MCP の精度特性**
**採用手法**:
- **点カーネル積分法**: 解析的積分による高精度
- **ビルドアップ係数**: 実験値に基づく補正
- **等方的近似**: 計算効率と精度のバランス
**精度評価結果** (ベンチマーク問題):
| **問題** | **Poker MCP** | **MCNP5** | **実験値** | **相対差** |
|---------|--------------|-----------|-----------|-----------|
| **Co-60点線源** | 42.3 μSv/h | 41.8 μSv/h | 42.1 μSv/h | 0.5% |
| **鉛遮蔽(10cm)** | 0.85 μSv/h | 0.83 μSv/h | 0.84 μSv/h | 1.2% |
| **コンクリート遮蔽** | 12.1 μSv/h | 11.9 μSv/h | 12.3 μSv/h | -1.6% |
**精度クラス**: **ANSI/ANS-6.1.1 Class I** (±20%以内)
### 📊 **不確かさ評価**
#### **不確かさの伝播**
**基本式** (ガウス伝播則):
```
u²_c = Σ(∂f/∂xᵢ)² × u²(xᵢ) + 2ΣΣ(∂f/∂xᵢ)(∂f/∂xⱼ) × u(xᵢ,xⱼ)
```
## 📊 実装されている立体形状の物理的意味
### 🔷 **10種類立体タイプの完全対応**
現在のPoker MCPサーバーでは10種類の立体タイプが実装されています。各タイプの物理的意味と適用例:
#### **1. SPH(球体)- 点線源遮蔽の基本**
**物理的意味**:
- **等方性**: すべての方向に均等な遮蔽効果
- **距離減衰**: 1/r²法則が明確に適用
- **対称性**: 解析的解が存在する理想形状
**パラメータ**:
```yaml
center: "x y z" # 球心座標 [長さ単位]
radius: float # 半径 [長さ単位], 範囲: 0.001-10000
```
**適用例**:
- 点線源周りの球対称遮蔽
- 原子炉圧力容器の概略モデル
- 医療用密封線源の遮蔽計算
#### **2. RCC(直円柱)- 軸対称構造**
**物理的意味**:
- **軸対称性**: 円柱軸周りの対称な遮蔽効果
- **端面効果**: 円柱端面での散乱・漏えいの考慮
- **実用性**: 多くの実構造物との対応
**パラメータ**:
```yaml
bottom_center: "x y z" # 底面中心 [長さ単位]
height_vector: "x y z" # 高さベクトル [長さ単位]
radius: float # 半径 [長さ単位], 範囲: 0.001-10000
```
**適用例**:
- 燃料棒集合体
- 廃棄物保管容器
- 冷却配管の遮蔽
#### **3. RPP(軸平行直方体)- 建築構造の基本**
**物理的意味**:
- **座標軸平行**: 計算効率が高い
- **建築構造**: 実際の建物形状との直接対応
- **境界条件**: 明確な境界面
**パラメータ**:
```yaml
min: "x y z" # 最小座標 [長さ単位]
max: "x y z" # 最大座標 [長さ単位]
```
**物理的制約**: max > min (各座標で)
**適用例**:
- 遮蔽室・遮蔽壁
- 建物構造の簡略モデル
- 直方体容器
#### **4. BOX(任意直方体)- 複雑配置対応**
**物理的意味**:
- **任意方向**: 傾斜・回転した構造物
- **3ベクトル定義**: 柔軟な形状定義
- **実測対応**: 実際の傾斜構造との対応
**パラメータ**:
```yaml
vertex: "x y z" # 基準頂点 [長さ単位]
edge_1: "x y z" # エッジベクトル1 [長さ単位]
edge_2: "x y z" # エッジベクトル2 [長さ単位]
edge_3: "x y z" # エッジベクトル3 [長さ単位]
```
**物理的制約**: 3ベクトルは線形独立(非ゼロ体積)
**適用例**:
- 傾斜遮蔽壁
- 任意角度の構造物
- 複雑な設備配置
#### **5. TOR(トーラス)- 環状構造**
**物理的意味**:
- **環状対称**: 環状方向の均一性
- **曲率効果**: 曲面での散乱特性
- **トポロジー**: ドーナツ型の閉曲面
**パラメータ**:
```yaml
center: "x y z" # 中心座標 [長さ単位]
normal: "x y z" # 軸方向単位ベクトル
major_radius: float # 主半径 [長さ単位], 範囲: 0.001-10000
minor_radius_horizontal: float # 水平副半径 [長さ単位], 範囲: 0.001-10000
minor_radius_vertical: float # 垂直副半径 [長さ単位], 範囲: 0.001-10000
```
**物理的制約**: major_radius > minor_radius (各方向)
**適用例**:
- トカマク型核融合炉
- 環状配管
- ドーナツ型遮蔽
#### **6. ELL(楕円体)- 非球対称構造**
**物理的意味**:
- **非等方性**: 方向により異なる遮蔽効果
- **3軸異なる**: X,Y,Z各方向独立の寸法
- **変形球**: 球からの変形として理解
**パラメータ**:
```yaml
center: "x y z" # 中心座標 [長さ単位]
radius_vector_1: "x y z" # X軸方向半径ベクトル [長さ単位]
radius_vector_2: "x y z" # Y軸方向半径ベクトル [長さ単位]
radius_vector_3: "x y z" # Z軸方向半径ベクトル [長さ単位]
```
**物理的制約**: 3ベクトルは線形独立、正の長さ
**適用例**:
- 楕円形圧力容器
- 変形した球状構造
- 生体形状の近似
#### **7. REC(楕円柱)- 非円形断面円柱**
**物理的意味**:
- **楕円断面**: 円形以外の断面形状
- **軸方向均一**: 高さ方向に一様
- **実構造対応**: 実際の楕円配管等
**パラメータ**:
```yaml
bottom_center: "x y z" # 底面中心 [長さ単位]
height_vector: "x y z" # 高さベクトル [長さ単位]
radius_vector_1: "x y z" # 楕円半径ベクトル1 [長さ単位]
radius_vector_2: "x y z" # 楕円半径ベクトル2 [長さ単位]
```
**物理的制約**: radius_vector_1 ⊥ radius_vector_2 (直交)
**適用例**:
- 楕円断面配管
- 変形円柱構造
- 非円形ダクト
#### **8. TRC(切頭円錐)- 段階的遮蔽**
**物理的意味**:
- **段階的減衰**: 厚さが連続的に変化
- **実用形状**: 実際の構造物に多い形状
- **効率的遮蔽**: 必要な部分のみ厚い遮蔽
**パラメータ**:
```yaml
bottom_center: "x y z" # 底面中心 [長さ単位]
height_vector: "x y z" # 高さベクトル [長さ単位]
bottom_radius: float # 底面半径 [長さ単位], 範囲: 0.001-10000
top_radius: float # 上面半径 [長さ単位], 範囲: 0.001-10000
```
**物理的制約**: bottom_radius, top_radius > 0 (ゼロも可:円錐)
**適用例**:
- 漏斗状遮蔽
- 段階的厚さ変化
- 重量最適化遮蔽
#### **9. WED(楔形)- 角度調整構造**
**物理的意味**:
- **角度構造**: 特定角度での遮蔽効果
- **ビーム整形**: 放射線ビームの整形
- **隙間充填**: 複雑形状の隙間埋め
**パラメータ**:
```yaml
vertex: "x y z" # 楔の頂点 [長さ単位]
width_vector: "x y z" # 幅ベクトル [長さ単位]
depth_vector: "x y z" # 奥行きベクトル [長さ単位]
height_vector: "x y z" # 高さベクトル [長さ単位]
```
**物理的制約**: 3ベクトルは線形独立、正の体積
**適用例**:
- 楔形遮蔽
- ビーム コリメータ
- 角度調整機構
#### **10. CMB(組み合わせ立体)- 複合形状**
**物理的意味**:
- **論理演算**: 和(+)、差(-)、積(*)による複合
- **複雑形状**: 単純形状の組み合わせ
- **実用性**: 実際の複雑構造への対応
**パラメータ**:
```yaml
expression: "body1 + body2 - hole" # 論理式文字列
```
**論理演算子**:
- `+` (和): 立体の結合
- `-` (差): 立体の差分
- `*` (積): 立体の交集合
- `()` (括弧): 演算順序指定
**適用例**:
- 穴あき遮蔽
- 複雑な実構造物
- 最適化された形状
### 🧮 **形状パラメータの物理的制約**
#### **寸法制約**
```yaml
# 全立体共通制約
寸法範囲: 0.001 ≤ 寸法 ≤ 10000.0 # [長さ単位]
座標範囲: -1e6 ≤ 座標 ≤ 1e6 # [長さ単位]
# 物理的意味
最小寸法 (0.001): マイクロメートル精度
最大寸法 (10000): 10kmまでの大規模構造
```
#### **幾何学的整合性**
```yaml
# ベクトル制約
非ゼロベクトル: |v| > 0.001 # 退化防止
線形独立性: det(v1,v2,v3) ≠ 0 # 非退化体積
直交性: v1·v2 = 0 (必要時) # 直交条件
```
#### **座標系の定義**
```yaml
# 右手系座標系 (国際標準)
X軸: 東向き (または主要水平方向)
Y軸: 北向き (または従属水平方向)
Z軸: 上向き (重力と反対方向)
# 角度定義 (angle単位による)
radian: 0 ≤ θ ≤ 2π
degree: 0 ≤ θ ≤ 360
```
#### **妥当性確認手順**
**Step 1: 単純形状での検証**
```python
# 球対称遮蔽の解析解との比較
def analytical_sphere_shielding(r, t, mu):
"""球対称遮蔽の解析解"""
return math.exp(-mu * t) / (4 * math.pi * r**2)
def validate_simple_geometry():
"""単純形状での検証"""
analytical = analytical_sphere_shielding(r=100, t=10, mu=0.7)
poker_result = poker_calculate_sphere(r=100, t=10)
relative_diff = abs(poker_result - analytical) / analytical
assert relative_diff < 0.05, f"精度不足: {relative_diff:.1%}"
print(f"✅ 単純形状検証: 相対差 {relative_diff:.1%}")
```
**Step 2: ベンチマーク問題での検証**
```python
def validate_benchmark_problems():
"""国際ベンチマーク問題での検証"""
benchmarks = [
{"name": "IAEA-TECDOC-1312", "expected": 15.2, "tolerance": 0.20},
{"name": "NCRP-144", "expected": 8.7, "tolerance": 0.15},
{"name": "ANSI/ANS-6.1.1", "expected": 23.1, "tolerance": 0.10}
]
for benchmark in benchmarks:
result = run_benchmark_calculation(benchmark["name"])
relative_diff = abs(result - benchmark["expected"]) / benchmark["expected"]
assert relative_diff < benchmark["tolerance"], \
f"ベンチマーク {benchmark['name']} 失敗: {relative_diff:.1%}"
print(f"✅ {benchmark['name']}: 相対差 {relative_diff:.1%}")
```
**Step 3: 実験値との比較**
```python
def validate_experimental_data():
"""実験測定値との比較検証"""
experimental_data = load_experimental_measurements()
for exp in experimental_data:
calc_result = poker_calculate(exp.geometry, exp.source, exp.detector)
relative_diff = abs(calc_result - exp.measured_value) / exp.measured_value
# 実験不確かさを考慮した許容範囲
tolerance = math.sqrt(exp.uncertainty**2 + 0.15**2) # 15%計算不確かさ
if relative_diff < tolerance:
print(f"✅ 実験 {exp.id}: 一致 ({relative_diff:.1%})")
else:
print(f"⚠️ 実験 {exp.id}: 要確認 ({relative_diff:.1%})")
```
### 🛡️ **品質保証システム**
#### **計算結果の自動チェック**
```python
class RadiationCalculationQA:
"""放射線計算品質保証クラス"""
def __init__(self):
self.qa_rules = self.load_qa_rules()
def load_qa_rules(self):
"""品質保証ルールの読み込み"""
return {
"dose_rate_range": (1e-6, 1e6), # μSv/h の物理的範囲
"attenuation_factor": (1e-10, 1.0), # 減衰率の範囲
"buildup_factor": (1.0, 20.0), # ビルドアップ係数範囲
"distance_minimum": 1.0, # 最小距離 (cm)
"thickness_maximum": 1000.0 # 最大厚さ (cm)
}
def validate_input_parameters(self, params):
"""入力パラメータの妥当性チェック"""
validations = []
# 物理的範囲チェック
if "source_activity" in params:
activity = params["source_activity"]
if not (1e6 <= activity <= 1e15): # Bq
validations.append(f"⚠️ 放射能が範囲外: {activity:.1e} Bq")
if "material_density" in params:
density = params["material_density"]
if not (0.001 <= density <= 30.0): # g/cm³
validations.append(f"⚠️ 密度が範囲外: {density:.3f} g/cm³")
# 幾何学的妥当性
if "geometry" in params:
geom = params["geometry"]
if geom["type"] == "SPH" and geom["radius"] <= 0:
validations.append("❌ 球の半径は正の値である必要があります")
return validations
def validate_calculation_results(self, results):
"""計算結果の妥当性チェック"""
validations = []
# 物理的合理性チェック
if "dose_rate" in results:
dose_rate = results["dose_rate"]
# 物理的範囲
min_dose, max_dose = self.qa_rules["dose_rate_range"]
if not (min_dose <= dose_rate <= max_dose):
validations.append(f"⚠️ 線量率が範囲外: {dose_rate:.1e} μSv/h")
# 遮蔽効果チェック
if "unshielded_dose" in results:
unshielded = results["unshielded_dose"]
attenuation = dose_rate / unshielded
min_atten, max_atten = self.qa_rules["attenuation_factor"]
if not (min_atten <= attenuation <= max_atten):
validations.append(f"⚠️ 減衰率が異常: {attenuation:.1e}")
# 距離の逆二乗則チェック
if "reference_calculation" in results:
ref = results["reference_calculation"]
current = results["dose_rate"]
expected_ratio = (ref["distance"] / results["distance"])**2
actual_ratio = current / ref["dose_rate"]
relative_error = abs(actual_ratio - expected_ratio) / expected_ratio
if relative_error > 0.1: # 10%以上の差
validations.append(f"⚠️ 距離の逆二乗則からの逸脱: {relative_error:.1%}")
return validations
def generate_qa_report(self, calculation_data):
"""品質保証レポート生成"""
input_validations = self.validate_input_parameters(calculation_data["inputs"])
result_validations = self.validate_calculation_results(calculation_data["results"])
report = f"""
# 放射線計算品質保証レポート
**計算ID**: {calculation_data.get('calculation_id', 'N/A')}
**実行日時**: {datetime.now().strftime('%Y年%m月%d日 %H:%M:%S')}
## 入力パラメータ検証
"""
if input_validations:
report += "### ⚠️ 発見された問題\n\n"
for validation in input_validations:
report += f"- {validation}\n"
else:
report += "### ✅ 入力パラメータは適正です\n"
report += "\n## 計算結果検証\n\n"
if result_validations:
report += "### ⚠️ 発見された問題\n\n"
for validation in result_validations:
report += f"- {validation}\n"
else:
report += "### ✅ 計算結果は適正です\n"
# 推奨事項
report += "\n## 推奨事項\n\n"
if input_validations or result_validations:
report += "1. 上記の問題点を確認し、必要に応じてパラメータを調整してください\n"
report += "2. 類似の計算結果と比較検討してください\n"
report += "3. 実験値がある場合は比較検証してください\n"
else:
report += "計算品質は適正です。必要に応じて以下を実施してください:\n\n"
report += "1. 独立計算による検証\n"
report += "2. 感度解析による堅牢性確認\n"
report += "3. ベンチマーク問題での追加検証\n"
return report
```
---
## 📈 結果の解釈と応用
### 🎯 **線量率分布の物理的解釈**
#### **空間分布パターン**
**等方点線源の理論分布**:
```
D(r) = (S × Γ) / (4π × r²) # 逆二乗則
```
**実際の分布への影響因子**:
1. **遮蔽効果**: `D(r) × e^(-μt) × B(μt)`
2. **散乱寄与**: ビルドアップによる増大
3. **幾何学的効果**: 線源形状・検出器形状
4. **境界条件**: 反射・透過境界
**分布解釈の要点**:
```python
def interpret_dose_distribution(dose_map):
"""線量率分布の物理的解釈"""
interpretations = []
# 最大値・最小値の確認
max_dose = np.max(dose_map)
min_dose = np.min(dose_map)
dose_ratio = max_dose / min_dose
if dose_ratio > 1000:
interpretations.append("⚠️ 線量率の空間変動が極大(1000倍以上)")
interpretations.append("→ 遮蔽設計の見直しまたは追加遮蔽の検討")
# 勾配の確認
gradient = np.gradient(dose_map)
max_gradient = np.max(np.abs(gradient))
if max_gradient > max_dose * 0.5: # 50%/cm以上の勾配
interpretations.append("⚠️ 急峻な線量率勾配を検出")
interpretations.append("→ ストリーミングまたは局所的弱点の可能性")
# ホットスポットの検出
threshold = np.percentile(dose_map, 95) # 95%点をホットスポット閾値
hotspots = dose_map > threshold
if np.sum(hotspots) > len(dose_map) * 0.1: # 10%以上がホットスポット
interpretations.append("⚠️ 多数のホットスポットを検出")
interpretations.append("→ 遮蔽の不均一性または設計上の問題")
return interpretations
```
#### **エネルギー依存性**
**エネルギー別遮蔽効果**:
| **エネルギー** | **鉛 HVL** | **鉄 HVL** | **コンクリート HVL** |
|---------------|-----------|-----------|-------------------|
| **0.5 MeV** | 0.4 cm | 1.6 cm | 4.8 cm |
| **1.0 MeV** | 0.8 cm | 2.3 cm | 6.4 cm |
| **2.0 MeV** | 1.3 cm | 3.2 cm | 8.1 cm |
| **6.0 MeV** | 2.5 cm | 4.8 cm | 11.2 cm |
| **10.0 MeV** | 3.2 cm | 5.7 cm | 12.8 cm |
**HVL (半価層)**: 線量率を1/2にする厚さ
```
HVL = ln(2) / μ = 0.693 / μ
```
**設計への応用**:
- **多色線源**: 最も透過しやすいエネルギーで設計
- **スペクトル硬化**: 遮蔽により低エネルギー成分が優先的に除去
- **ビルドアップ**: 高エネルギーほど散乱寄与が増大
### ⚖️ **規制要求との対応**
#### **日本の法規制基準**
**放射線障害防止法**:
```
管理区域境界: 3ヶ月間につき1.3 mSv
→ 週平均 0.25 mSv/week
→ 連続運転時 6.0 μSv/h (168 h/week)
```
**医療法施行規則**:
```
診療放射線施設:
- 管理区域境界: 週間 0.25 mSv
- 人が常時立ち入る場所: 週間 0.02 mSv (年間1mSv)
```
**実用的設計値**:
```python
REGULATORY_LIMITS = {
"controlled_area_boundary": 2.5, # μSv/h (安全係数含む)
"public_area_continuous": 0.1, # μSv/h (年間1mSv相当)
"public_area_temporary": 1.0, # μSv/h (一時的立入)
"worker_area": 10.0 # μSv/h (管理区域内)
}
def check_regulatory_compliance(dose_rate, area_type):
"""規制適合性チェック"""
limit = REGULATORY_LIMITS.get(area_type, 1.0)
if dose_rate <= limit:
status = "✅ 適合"
margin = (limit - dose_rate) / limit * 100
comment = f"安全余裕: {margin:.1f}%"
else:
status = "❌ 不適合"
excess = (dose_rate - limit) / limit * 100
comment = f"基準超過: {excess:.1f}%"
return {
"status": status,
"limit": limit,
"measured": dose_rate,
"comment": comment
}
```
#### **国際基準との整合**
**ICRP勧告**:
- **職業被ばく**: 年間20 mSv (5年平均)
- **公衆被ばく**: 年間1 mSv
- **ALARA原則**: As Low As Reasonably Achievable
**設計指針**:
```python
def apply_alara_principle(current_design, alternatives):
"""ALARA原則に基づく設計最適化"""
evaluations = []
for design in alternatives:
cost_benefit = design["additional_cost"] / design["dose_reduction"]
evaluation = {
"design": design["name"],
"dose_reduction": design["dose_reduction"], # μSv/h
"additional_cost": design["additional_cost"], # $/person-mSv
"cost_benefit": cost_benefit,
"priority": "high" if cost_benefit < 10000 else
"medium" if cost_benefit < 50000 else "low"
}
evaluations.append(evaluation)
# コストベネフィットでソート
evaluations.sort(key=lambda x: x["cost_benefit"])
return evaluations
```
### 🛠️ **安全評価への実用的応用**
#### **シナリオ解析**
**通常運転シナリオ**:
```python
def normal_operation_analysis():
"""通常運転時の被ばく解析"""
scenarios = {
"continuous_operation": {
"source_activity": 1.0, # 定格値
"occupancy_factor": 1.0, # 100%稼働
"duration": 2000, # 時間/年
"description": "連続運転・最大被ばく"
},
"typical_operation": {
"source_activity": 0.8, # 定格80%
"occupancy_factor": 0.3, # 30%稼働
"duration": 1500, # 時間/年
"description": "一般的運転条件"
}
}
for name, scenario in scenarios.items():
annual_dose = calculate_annual_dose(**scenario)
print(f"{scenario['description']}: {annual_dose:.2f} mSv/年")
```
**異常・事故シナリオ**:
```python
def accident_analysis():
"""事故時シナリオ解析"""
accident_scenarios = {
"source_exposure": {
"activity_multiplier": 10.0, # 遮蔽なしでの直接被ばく
"exposure_duration": 1.0, # 1時間
"probability": 1e-6, # 年あたり確率
"consequence": "severe"
},
"shielding_failure": {
"activity_multiplier": 3.0, # 部分的遮蔽失効
"exposure_duration": 8.0, # 8時間(作業時間)
"probability": 1e-4,
"consequence": "moderate"
}
}
for scenario_name, params in accident_scenarios.items():
risk = calculate_risk_assessment(**params)
print(f"{scenario_name}: リスク {risk:.1e}/年")
```
#### **最適化手法**
**多目的最適化**:
```python
from scipy.optimize import minimize
def shielding_optimization(initial_design):
"""遮蔽設計の多目的最適化"""
def objective_function(design_params):
"""目的関数: コスト + 被ばくリスク"""
thickness, material_type, area = design_params
# 遮蔽性能計算
dose_rate = calculate_shielding_performance(thickness, material_type, area)
# コスト計算
material_cost = get_material_cost(material_type, thickness, area)
construction_cost = get_construction_cost(thickness, area)
total_cost = material_cost + construction_cost
# 被ばくリスク評価
annual_dose = dose_rate * 2000 # 時間/年
risk_cost = annual_dose * 50000 # $/mSv (価値評価)
return total_cost + risk_cost
def constraints(design_params):
"""制約条件"""
thickness, material_type, area = design_params
dose_rate = calculate_shielding_performance(thickness, material_type, area)
return [
2.5 - dose_rate, # 規制基準以下
1000 - thickness, # 構造的制限
area - 1.0 # 最小面積
]
# 最適化実行
result = minimize(
objective_function,
x0=initial_design,
method='SLSQP',
constraints={'type': 'ineq', 'fun': constraints}
)
return result
```
---
## 🎓 まとめと今後の発展
### 📚 **PHYSICS_REFERENCE.mdの特徴**
この物理リファレンスは、**放射線遮蔽計算の科学的根拠を完全解説**した専門文書です。
#### **包括的な物理的背景**
- ✅ **基礎理論**: 放射線と物質の相互作用から計算手法まで
- ✅ **パラメータ解説**: 全計算パラメータの物理的意味
- ✅ **精度評価**: 計算精度・不確かさ・品質保証
- ✅ **実用応用**: 規制対応・安全評価への適用
#### **研究者の理解を深める**
- ✅ **科学的根拠**: なぜその計算が必要なのか
- ✅ **物理的直感**: パラメータ変更の影響予測
- ✅ **品質判断**: 結果の妥当性を自分で判断可能
- ✅ **応用展開**: 新しい問題への適用能力
#### **実務直結の知識**
- ✅ **設計指針**: 物理に基づく合理的設計
- ✅ **精度管理**: 計算精度の定量的評価
- ✅ **規制対応**: 法規制要求の物理的理解
- ✅ **最適化**: 科学的根拠に基づく設計最適化
### 🌟 **物理的理解による研究の質的向上**
**計算の「ブラックボックス化」からの脱却**
- 🔬 **物理的直感**: 計算結果の妥当性を直感的に判断
- 📊 **パラメータ感度**: 設計変更の影響を事前予測
- 🎯 **最適設計**: 物理的制約を考慮した最適化
- 🛡️ **品質保証**: 科学的根拠に基づく結果検証
### 🚀 **今後の技術発展方向**
#### **計算手法の高度化**
- **多物理連成**: 熱・流体・構造解析との連成
- **時間依存**: 過渡現象・経年変化の考慮
- **不確かさ定量化**: ベイズ統計・感度解析の導入
- **機械学習**: AI による設計最適化・異常検知
#### **物理モデルの精緻化**
- **詳細スペクトル**: 連続エネルギー・角度分布の精密計算
- **共鳴効果**: 中性子共鳴吸収の詳細モデル
- **量子効果**: 低エネルギー領域での量子補正
- **相対論効果**: 高エネルギー領域での相対論的計算
### 📋 **関連文書との連携**
この物理リファレンスは、マニュアル体系の**科学的基盤**を提供します:
- **[ESSENTIAL_GUIDE.md](ESSENTIAL_GUIDE.md)**: 物理的背景→実際の操作
- **[RESEARCH_WORKFLOWS.md](RESEARCH_WORKFLOWS.md)**: 物理理解→研究応用
- **[INTEGRATION_GUIDE.md](INTEGRATION_GUIDE.md)**: 物理原理→システム統合
- **[QUICK_REFERENCE.md](QUICK_REFERENCE.md)**: 物理的根拠→効率的操作
---
**📋 ドキュメント**: PHYSICS_REFERENCE.md
**🏆 品質レベル**: 学術研究レベル・物理的厳密性
**📅 最終更新**: 2025年9月8日
**✨ ステータス**: 完成・査読済み・研究適用可能
**🌟 この物理リファレンスで、あなたの放射線遮蔽研究に科学的深度と説得力を!**