連成問題に取り組む

最近は二つのシミュレーションプログラムの連成をやっています。
片方のプログラムを先に作ったのであとからもう一つのシミュレーションを追加しているところです。

連成というのは,物理学上では複数のシステムがそれぞれ相互作用している状態を指します。まぁおおざっぱに例えるなら電磁場解析の結果得られた場からの影響を考慮して力学問題を解くとかって事ですね。時間の扱い方に関しては性質上,多くの場合に過渡的な物を考えます。

連成の問題を解くにはいくつかのやり方があって,大まかには

  1. 複数のシステムをまとめて一つの方程式を立てて解く一体型
  2. システム毎に別々の方程式を立てて解く分離型

の二種類にわかれます。

分離型の場合はシステム同士の相互作用をどのように表現するのかが問題になります。
(一体型は大抵の場合,相互作用を方程式に取り込んでいるので気にしない)
なので,分離型は相互作用の整合性をしっかり考える強連成とゆるやかに考える弱連成とに分かれます。
相互作用は各々の方程式の境界条件として取り込んでいくのがオーソドックスな手法です。


さて,僕が今つくっているプログラムでは二つのシステムの連成問題,解析の手法は弱連成をチョイス。

つまり二つの現象がもつ未知数をすべて網羅するような統一的な方程式をたてずに(分離型にして),二つのシミュレーションを別々に解き相互作用を逐次お互いの境界条件として取り入れる形です。

連成問題を取り組むのは初めてなので,システム間でのデータの共有化(メッシュとか)などを考えたり境界条件をやり取りする方法をいろいろ試したりと目下悪戦苦闘中ですが年末までには完成させたいものです。