NEWTONタグ

[2018/12/20更新]

Newton-Raphson法の収束の有無,最終残差, 反復回数を表します.

NEWTONタグ

各種下記の第2タグを用います.
NEWTONタグの第2タグ
第2タグ 項目
CONVERGE 収束の有無(Boolean値)
RESIDUAL 最終残差(収束判定値がBの時は最終ΔB)
ITERATION 反復回数

データ取得例

["NEWTON"]["CONVERGE"]
["NEWTON"]["RESIDUAL"]
["NEWTON"]["ITERATION"]

Pythonスクリプト例

とりあえず,Newton-Raphson法による非線形反復計算が未収束となったのか判定する例.
変数 js にEMSOJsonのデータが収納されているとする.
#------------------------------
#[input]
#  js    : EMSOJson data
#[return]
#  True  : 収束
#  False : 未収束が1つ以上ある
#------------------------------
def isconverge(js):

    step = js["NEWTON"]["CONVERGE"] # CONVERGEタグのデータ取得
    for isc in step:                # 各ステップのNR反復毎のデータ抽出
        if not isc:
           return False             # 1つでも未収束の場合はFalse
    return True

非線形反復計算が未収束となった計算ステップ番号を全て取得したい例.

#-------------------------
#[input]
#  js        : EMSOJson data
#[return]
#  unconvs[] : 未収束のステップ番号
#-------------------------
def isconverge(js):

    unconvs = []                    # 未収束のステップ番号

    step = js["NEWTON"]["CONVERGE"] # CONVERGEタグのデータ取得
    for (i,jsc) in enumerate(step): # 各ステップのデータ抽出
        if not isc:
            unconvs.append(i)       # 未収束のステップ番号(i)を収納
    return unconvs