k_posd_nonzero

    EFG (Element-Free Galerkin) 法による離散化で現れる対称行列[aij] の非零要素の位置を決定する倍精度サブルーチン.
     
     
  • サブルーチン名: k_posd_nonzero

  •  
  • 呼び出し方:call k_posd_nonzero(nnode, xnode, ynode, rad, n_size, n_nonzero, iu, nzu, row_ptr)

  •  
  • 引 数:
  • 引数
    意 味
    入出力の区分
    備 考
    nnode 全節点数
    入力
    整数型
    xnode(nnode), ynode(nnode) xnode(i), ynode(i) は第 i 番目節点の x, y 座標を表す.
    入力
    倍精度実数型
    rad |xi-xj| < rad のときのみ,行列要素aijを非零要素と見做す.
    入力
    倍精度実数型.通常は,サポート半径の2倍を指定する.
    n_size 行列 [aij] の狭義上三角部分に占める非零要素数の見積値.n_size < n_nonzeroの場合,実行を停止する.
    入力
    整数型
    n_nonzero 行列 [aij] の狭義上三角部分に占める非零要素数
    出力
    整数型
    iu(n_size) iu(k)は第 k 番目の非零要素の列番号を表す.(k=1, 2, ..., n_nonzero)
    出力
    整数型
    nzu(n) 行列 [aij] の狭義上三角部分の第 i 行目にある非零要素の数
    出力
    整数型
    row_ptr(n+1) row_ptr(i)は第 i 行目にある最初の非零要素の非零要素番号を示す
    出力
    倍精度実数型

  • 注 意:
    1. 非零要素を探索している途中でその数が見積値 n_size を超えると,本ルーチンは停止する.その際には,n_sizeを増やした後,再実行するのが良い.
    2. 本ルーチンの結果を用いて行列要素を計算した場合,非零要素 au(k) (k=1, 2, ..., n_nonzero) はゼロ要素を含む可能性がある.その結果得られた ICCG法形式のデータから零要素情報を取り除くには,サブルーチンk_r0_iccgを呼び出せば良い.