Closed msomeya1 closed 5 months ago
染谷さま
Bjどうもありがとうございます。 次の改のrに取り入れようと思います。ありがとうございました。大浃辘郡い扦埂 引きAきよろしくおいします。
R
差出人: 'msomeya1' via jagurs_admin @.> 送信日r: Sunday, June 9, 2024 4:03:23 PM 宛先: jagurs-admin/jagurs @.> CC: Subscribed @.***> 件名: [jagurs-admin/jagurs] 吸 Ь辰缣跫g装について/About implementation of absorbing boundary conditions (Issue #20)
お世になっております。地震研M2の染矢です。
形分散波をシミュレ`ションするために、吸 Ь辰缣跫ONにした算をみています(nxa=nya=60, apara=0.002)。 すると、30分を^ぎたあたりから算I域の右下で波が爆kし始め、やがて振幅が1e6を超えて、算が停止します。
unstable.gif (view on web)https://github.com/jagurs-admin/jagurs/assets/118101078/2f77ddd3-4e45-48d4-85e9-84009e53af21
おそらく、スポンジ(ダンパ)の定xに}があると思います。 以下は、mod_rwg.f90のサブル
チンmake_abcからのiです。
do j = 1, nlat do i = 1, nlon if(i < nxa) then tmp = exp(-((apara*(nxa-i ))2)) else if(i > (nlon-nxa+1)) then tmp = exp(-((apara*(i-nlon+nxa-1))*2)) else if(j < nya) then tmp = exp(-((apara(nya-j ))2)) else if(j > (nlat-nya+1)) then tmp = exp(-((apara*(j-nlat+nya-1))**2)) else tmp = 1.0d0 end if abc(i,j) = tmp end do end do
nlon=100, nlat=150, nxa=nya=30, apara=0.002としてabcを描いてみると、四隅のスポンジが滑らかに接Aされていないことがわかります。
abc1.png (view on web)https://github.com/jagurs-admin/jagurs/assets/118101078/25aec620-b3dd-446e-8144-eea68660883e
先ほどの波が爆kしたw所は、ちょうど不BAにabcがwぶw所に辘筏皮い毪人激い蓼埂
そこで、make_abcを次のように改良してみます。
do j = 1, nlat jj = min(j, nlat+1-j) do i = 1, nlon ii = min(i, nlon+1-i) if(ii <= nxa .and. jj > nya) then tmp = exp(-((apara*(nxa-ii))2)) else if(ii > nxa .and. jj <= nya) then tmp = exp(-((apara*(nya-jj))*2)) else if(ii <= nxa .and. jj <= nya) then tmp = exp(-((apara(nxa-ii))2+(apara*(nya-jj))**2)) else tmp = 1.0d0 end if abc(i,j) = tmp end do end do
このコドでは、四x(四隅以外)でのI理はこれまでと同じですが、四隅ではユ
クリッド距xに辘袱p衰の仕方をQめることにより、スポンジを滑らかに接Aします。
abc2.png (view on web)https://github.com/jagurs-admin/jagurs/assets/118101078/1341b704-3c29-436f-be80-ed5166dca434
この龊稀⒆钺幛蓼潜kすることなく、算は正常にK了します。
stable.gif (view on web)https://github.com/jagurs-admin/jagurs/assets/118101078/4c5c1bf3-ecb2-4f24-bc99-9dad455499c3
以上、ご_Jいただければ幸いです。
― Reply to this email directly, view it on GitHubhttps://github.com/jagurs-admin/jagurs/issues/20, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEKCJZA36PVGJHFCRLLYVYDZGP43XAVCNFSM6AAAAABJAUNTXWVHI2DSMVQWIX3LMV43ASLTON2WKOZSGM2DEMBWGI2TSMQ. You are receiving this because you are subscribed to this thread.Message ID: @.***>
To unsubscribe from this group and stop receiving emails from it, send an email to @.**@.>.
馬場先生
ありがとうございます。 (一部文字化けしてしまっているのですが、次回改訂時に取り入れて頂けるということは読むことができました)
もう一つ、計算の初期条件について質問があります。
JAGURSでは、波高の初期値η(x,y,t=0)
が与えられたとき(初期流束M(x,y,t=0), N(x,y,t=0)
は0とします)、その後の時刻の波動場を計算することはできると思います。
(初期地殻変動ファイルとしてη(x,y,t=0)
を与えることで実現可能)
では、η(x,y,t=0)
だけでなく、non-zeroの初期流束M(x,y,t=0), N(x,y,t=0)
が与えられたとき、その後の時刻の波動場を計算するにはどうしたらよいでしょうか。
(leap-frogやstaggered-gridであるため、格子点や時刻を半分ずらして用意する必要はありますが、この点は事前にクリアできているものとします)
※最も簡単な線形長波での計算を想定しています
私が思いつく最も簡単な方法は、計算のリスタート機能を利用(乱用?)することです。
リスタートのためには計算終了時点での波高や流束などの情報が必要ですので、
逆に与えたい初期条件ファイルをリスタート情報ファイルに変換することができれば、リスタート機能によって任意のη, M, N
から計算を開始できるのではないか?ということです。
このようなことは可能でしょうか? また、可能である場合、注意点などはありますでしょうか?
重ねての質問となり大変恐縮ですが、ご確認いただけますと幸いです。 よろしくお願いいたします。
染矢
Hi Someya-san,
Yes, I think you can use restart function for that purpose. Also, you can directly e-mail me to avoid garbled characters. @.**@.>
Regards,
-- Baba, 088-656-9721 (ext. 4231)
Thank you for the immediate reply. I will try the restart function.
Also, you can directly e-mail me to avoid garbled characters.
I see. Next time I ask a question, I will use email.
Someya
お世話になっております。地震研M2の染矢です。
線形分散波をシミュレーションするために、吸収境界条件をONにした計算を試みています(
nxa=nya=60, apara=0.002
)。 すると、30分を過ぎたあたりから計算領域の右下で波が爆発し始め、やがて振幅が1e6を超えて、計算が停止します。おそらく、スポンジ(ダンパー)の定義に問題があると思います。 以下は、
mod_rwg.f90
のサブルーチンmake_abc
からの抜粋です。nlon=100, nlat=150, nxa=nya=30, apara=0.002
としてabc
を描いてみると、四隅のスポンジが滑らかに接続されていないことがわかります。先ほどの波が爆発した箇所は、ちょうど不連続に
abc
が飛ぶ箇所に対応していると思います。そこで、
make_abc
を次のように改良してみます。このコードでは、四辺(四隅以外)での処理はこれまでと同じですが、四隅ではユークリッド距離に応じて減衰の仕方を決めることにより、スポンジを滑らかに接続します。
この場合、最後まで爆発することなく、計算は正常に終了します。
以上、ご確認いただければ幸いです。