IGMBaseLib 1.0
モジュール | 関数/サブルーチン | 変数

src/core/grid/SPRGCGrid_Builder.f90

ソースコードを見る。

モジュール

module  SPRGCGrid_Builder
 

STD-Grid をバネ力学を用いて改良した SPR-GC-grid を作成する手続きを提供するモジュール.


関数/サブルーチン

subroutine, public SPRGCGrid_Builder::construct_SPRGCGrid (icgrid, tstep_limit)
 SPR-GC-grid を構築する.
subroutine, public SPRGCGrid_Builder::set_iteration_limiter (limiter_flag)
 時間積分に伴う逐次計算ループの反復回数を制限するか否かのフラグを設定する.
subroutine SPRGCGrid_Builder::modify_STDGrid_with_spring_dyn (icgrid)
 STD-grid を修正することによって得られる, SPR-GC-grid を生成する.
subroutine SPRGCGrid_Builder::move_GP_with_spring_dyn (icgrid, idMin, idMax, EMin, EMax)
 全球領域の各格子点に対してバネ力学を適用し, 仮想的なつり合い位置を求める.
subroutine SPRGCGrid_Builder::check_global_convergence (icgrid, conv_total_ave, conv_max, EMin, EMax)
 バネでつながれた格子点の振動が, 全球で収束したかを調べる.
real(8) SPRGCGrid_Builder::check_convergence (r0, pts, pt_num)
 収束度合いを, Tomita etal, 2001 の式(22) を用いてチェックする.
integer SPRGCGrid_Builder::generate_near_GP6index (rcID, GP0_i, GP0_j, EMin, EMax)
 格子点(rcID, GP0_i, GP0_j) の近傍にある格子点 6 個に対応する, 配列のインデックスを生成する.
integer SPRGCGrid_Builder::generate_near_GP5index (icgrid, rcID, GP0_i, GP0_j)
 格子点(rcID, GP0_i, GP0_j) の近傍にある格子点 5 個に対応する, 配列のインデックスを生成する.
subroutine SPRGCGrid_Builder::integ_ode_1step_spring_dynamics (r0, w0, GP, pt_num)
 固定された 6 点とバネでつながれた質点の位置の時間発展を計算する.
real(DP), dimension(3) SPRGCGrid_Builder::f1 (r0, w0)
 以下の常微分方程式の( Tomita etal, 2001 の式(21) ) の右辺の値を計算する.

\[ \DD{\Dvect{r_0}}{t} = f_1(\Dvect{r}_0, \Dvect{w}_0) = \Dvect{w}_0 \]


real(8), dimension(1:3) SPRGCGrid_Builder::f2 (r0, w0, pts, pt_num, alpha, k, eq_d, radius)
 以下の常微分方程式の( Tomita etal, 2001 の式(20) ) の右辺の値を計算する.

\[ M \DD{\Dvect{w_0}}{t} = f_2(\Dvect{r}_0, \Dvect{w}_0) \ = \sum_{i=1}^6 k(d_i - \bar{d}) \Dvect{e}_i - \alpha \Dvect{w}_0 \]


real(8), dimension(3) SPRGCGrid_Builder::calc_ei (r0, ri)
 点 G_0(r0) から 点 Gi(ri) を結ぶベクトルの単位ベクトルを取得する.

変数

real(DP) SPRGCGrid_Builder::eq_d
 力が課されていない時のバネの長さ.
real(DP) SPRGCGrid_Builder::radius
 正二十面体を内包する球の半径.
real(DP) SPRGCGrid_Builder::beta = 0.4d0
 チューニングパラメータ.
real(DP) SPRGCGrid_Builder::alpha = 2000.0d0
 摩擦定数.
real(DP) SPRGCGrid_Builder::k = 1.0d06
 バネ定数.
real(DP) SPRGCGrid_Builder::dt = 0.001d0
 時間刻み幅.
integer SPRGCGrid_Builder::end_tstep = 20000
 時間積分のステップ数.
logical SPRGCGrid_Builder::tstep_limiter = .false.
 時間積分に伴う逐次計算ループの反復回数を制限するか否かのフラグ. デフォルトは, ループ回数を制限しない.
integer SPRGCGrid_Builder::conv_check_step = 100
 収束判定を行うステップ間隔
integer, allocatable SPRGCGrid_Builder::GP_IJ
 ある格子点を取り囲む格子点(6 個 or 5 個)のインデックスを保持する配列.
 全て クラス ネームスペース ファイル 関数 変数