facebook twitter hatena line google mixi email
★お気に入り追加


  • 463
  •  
  • 2018/01/24(水) 21:20:18.50
>>462.
■その場合に0.868秒後くらいに気化することは、下図のC言語プログラムを実行してみればわかります。

#include <stdio.h>

#define RatioUpStartTime 10000

int main(int argc, char* argv[])
{
  double vNum[0x400], ratio, num, cumulat, temperat;
  int  t, ratio100000, passedTime;

  for (t = 0; t < 0x400; t++) vNum[t] = 0;
  ratio100000 = 95000;
  cumulat = 0;
  t = 0;
  while (1){
    ratio = (double)ratio100000 / 100000;
    num = vNum[(t - 1) & 0x3FF] * ratio * 0.99 + vNum[(t - 1000) & 0x3FF] * ratio * 0.01;
    if ((t % 10) == 0) num += 1;
    vNum[t & 0x3FF] = num;
    cumulat += num;
    temperat = 10 + 0.000000000032 * cumulat / (234 * 170 + 285 * 130);
    if (t == RatioUpStartTime) printf("%8e\n\n", (vNum[t & 0x3FF] - vNum[(t - 10) & 0x3FF]));
    if (temperat >= 11 && (t % 20) == 0){
      passedTime = t - RatioUpStartTime;
      printf("%.3f, %.4f, %19.0f, %21.0f, %7.1f\n", ((double)passedTime/10000), ratio, num, cumulat, temperat);
      if (temperat >= 50000) break;
    }
    if (t >= RatioUpStartTime) ratio100000++;
    t++;
  }

  return 0;
}

核分裂は必ず0.0001秒間隔でとびとびにまとまって起こるとして、各時刻の核分裂数を求めています
(0.0001秒間隔でとびとびにまとまって起こることも理論上あり得る可能性の1つだから、全可能性の代表としてこれを求める)。
期待値を求めているので、個数と言えども小数点以下まで求めています。

初期状態を核分裂数0とし、時刻0.0000秒で自発核分裂が1個加わって核分裂の連鎖が始まり
その後も自発核分裂が核分裂の連鎖に、0.001秒ごとに1個ずつ加わって行くとして、求めています
(燃料集合体1体あたり平均0.001秒間隔でウラン238が自発核分裂を起こすから。間隔が0.001秒である理由は後述)。

初めは、核分裂数(の期待値)が減り続けては、自発核分裂の1個が加わって、減り始める前より少し多くなる、
という過渡期が続いて徐々に増えて行きますが、やがて、
減り始める前と全く同じ値になる、つまり0.001秒周期で同じパターンを繰り返す、定常状態になります。

時刻1.0000秒では、定常状態になっていますから、
時刻1.0000秒から、核分裂1回あたりの増倍率を、0.0001秒ごとに0.00001ずつ大きくして行っています。

核分裂数の累計から温度を求める計算では、元の温度を10℃として、
燃料集合体が酸化ウラン 170kg、ジルコニウム 130kgで構成されてるとし
(根拠 http://www.ne.jp/asahi/suita/kyouiku-kankyou/higashinihonshinsai2.html )、
酸化ウランの比熱234J/kg度、ジルコニウムの比熱285J/kg度、核分裂1個の熱量 0.000000000032J として求めています。

ここまで見た

★お気に入り追加

このページを共有する
facebook twitter hatena line google mixi email
おすすめワード