溶岩流シミュレーション55LAVA配布サイト
2018年9月28日(2020年8月3日ソースを一部修正)
本サイトは、9月27日の火山学会で発表した火山学会のポスターと溶岩流シミュレーションソフトを
公開するためにつくりました。
詳しい説明のサイトはいずれつくるつもりですが、すぐに使ってみたい方で質問のあるかたは、直接佐伯まで
ご連絡ください
また、このプログラムはまだ十分にテストされていないので、バグがあるかも知れません。
結果を妄信しないようにご注意ください。バグレポートも歓迎です。
55LAVAの準備
55LAVAを動かすためには、フリーで公開されている、Processing言語をダウンロードする必要があります。
Processing言語についての説明は、こちらをご覧ください。
55Tephra用に作ったサイトですが、基本は一緒です。
Processing言語の紹介
55LAVAの一つの工夫は、ペイントソフトで自由に切り取ることができる画像化地図を使っていることです。
地形データの作り方に関する解説は、こちらをご覧ください。
画像化地図の仕組み
すぐに試すことができる、55LAVAのソースコードと、
そのソースコードで使う地図(バヌアツ共和国アンブリム島、30mメッシュ地図)、
および、火山学会の発表ポスターの3点を圧縮したファイルはこちらからダウンロードしてください。
こちらをクリック→ lava55.zip
これらを、ダウンロードして解凍し、lava55 というディレクトリをつくってmap.pngとlava55.pdeという
二つのファイルをそのディレクトリに入れてからlava55.pdeを実行してください。
processing言語がインストールされていれば、それだけで動きます。
マウスカーソルを地形の上に持って行くと、X,Y座標と標高(m)が表示されます。
また、マグマの上に持って行くと、マグマの厚さ、温度、そのセルのマグマが持つ熱量(J)が表示されます。
以下に実行中の画面を表示します。
実行中にprocessingのコンソールに現れる数字は、計算サイクル数、時間倍率(TimeMag)
経過時間(Time)(s)です。
TimeMagというのは、1サイクルの時間を何分割するかという倍率です。
55Lavaはまず、1サイクル1秒で各セルからのマグマの流れ出しを計算します。
しかし、実際は、セルにあるマグマ以上に流れ出してしまう場合があります。
その時に、セルにあるマグマの何倍が流れ出るかを計算しておきます。
そのような計算を各セルで行って、もっともマグマがとなりのセルに大量に流れるセルの倍率を
TimeMagとして記憶しておき、1サイクルの計算が終わった後で、各セルのマグマの流れ出る量を
TimeMagで割り算します。
つまり、TimeMagが10だとすると、どこかのセルでは、1秒で、マグマが今セルにあるマグマの
10倍流れて出てしまって計算が破綻する可能性があるので、全セルのマグマの流出量を
10で割る、すなわち、経過時間は1秒ではなく、10分の1秒だということにしてしまいます。
こうすることで、破綻なく溶岩は流れます。
一方で、経過時間は、常に1秒固定ではなく、サイクルごとに経過時間は変化します。
経過時間(Time)表示は、積算時間になっているので、こちらがシミュレーションの実時間だと
解釈していただければ、幸いです。
ソースの最後の2行(以下に表示)の、812,665 という数字は、マグマの噴出をX=812,Y=665という
座標に発生させているという意味です。
(この行、+=と書くべきところが=+となっていたので、2020年8月3日に修正しました。
バグを見つけてくれた荒木亮太郎氏に感謝します。)
この座標を変えると、噴火口を変えられます。また、この2行をコピーすれば、
噴火口をいくらでも増やすことが可能です。また、セルごとに噴出量を変えることも可能です。
噴火口定義部分のソース
// 溶岩噴出 噴出セル座標とセルあたりのフラックス (高さ換算)(m)で指定
lava[812][665]+=20.0/time_mag;
q[812][665]=lava[812][665]*(CellSize*CellSize)*Density*Cp*MagmaTemp;
途中経過の画像がTimeIntervalの経過時間ごとに画像で保存されますので、アニメ化や3D化などに
ご利用ください。
ポスターに掲載している3D化マップも簡単につくることができます。
解説はまた後程。
それでは、55LAVAをお楽しみください。
そのうち、WEBで手軽にできるバージョンも作ろうと思っております。