2021年10月31日日曜日

波の伝播

振動の伝播を解こうとして試行錯誤しています。

最初は簡単なモデルで試そうと考え、数十㎞の矩形領域の表面に点震源を与えました。

まずは CTC さんの SoilPlus でモデル化。しかし、計算しだすと完走までおよそ数か月かかることが判明。

これはダメだということで、Misdas さんの FEA NX に切り替え。ソルバーが GPU 対応です(なぜか GeForce 推奨)。
モデルを作って境界条件を張る際に気づいたのですが、側方の粘性境界が実装されていませんでした。伝達境界を張ろうとしましたが、コチラは3次元に対応していないようで晴れません。モデルを作る前に確認しておけばよかった。

で、FLAC 。
こちらは、node に 荷重を与えることが難しいようです。Fish で組み始めましたが、未だ完成せず。

最後にOpenSWPC。
これは以前、MPI が引っかかりコンパイルできなかったのですが、Ver5.20 になっていたためか今回はすんなりと通りました。サンプルを動かして動作確認OK。
実体力(物体力)を時系列で入力するのは左右対称のモーメント時間関数を利用し、点震源を重ね合わせることで対応できそうです。2D の例題で試してみました。

 
Boxcarで10秒間一定の力をかけた場合

 
Cosineで2秒毎(1秒間のラップ)の重ね合わせで10秒間

一定の実体力(Boxcar)をCosineで再現したのですが、内側の違い(9~10秒の関数形の相違)を除けば、一致しているるように見えます。振幅の比較は sac ファイルを確認ですね。ま、最終的にはコードの確認が必要でしょう。


こういった波の伝播に関しては、地震分野のプロがいくつかのコードを公開されていました。が、いずれも震源は断層をモデル化する方式で、時系列の力の入力はサポートされていません(当前なのですが)。OpenSWPC における重ね合わせの利用も、想定されていないでしょうね。

今のところ、FLAC が遅ければ OpenSWPC しか選択肢が残りません。これが正しく機能しないとわかったら、次に行きましょう。

0 件のコメント:

コメントを投稿