Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

解析ジョブのフローと結果ストア

解析ジョブのフロー

  1. analysis_run を呼び、job_id を受け取る(この時点でジョブは Running としてバックグラウンド実行される)
  2. analysis_status(job_id)Done/Failed になるまでポーリングする
  3. Done の場合、analysis_statusresult_ref にサマリ JSON が入っている。さらに詳細な明細(節点変位・部材内力など)が必要なら result_get を呼ぶ
// 1. analysis_run(kind="LinearStatic") の返り値
{ "job_id": "job-0" }

// 2. analysis_status(job_id="job-0") の返り値(Done になった時点)
{
  "id": "job-0",
  "kind": "LinearStatic",
  "status": {
    "Done": {
      "result_ref": "{\"kind\":\"LinearStatic\",\"case\":1,\"n_nodes\":2,\"n_member_force_rows\":3,\"max_abs_disp\":1.23,\"store\":{\"case\":1,\"kinds\":[\"NodalDisp\",\"MemberForce\"]}}"
    }
  }
}

// 3. result_get(case=1, kind="NodalDisp") の返り値
{ "case": 1, "kind": "NodalDisp", "rows": [ { "node_id": 1, "ux": 0.0, "uy": 0.0, "uz": 1.23, "rx": 0.0, "ry": 0.0, "rz": 0.0 } ], "truncated": false }

Eigen ジョブの結果は結果ストアに case=0 として格納されます(実荷重ケース番号との衝突を避けるための固定値)。result_get(case=0, kind="Modal") で取得します。

結果ストアのスキーマ

result_getkind に指定できる 4 種のスキーマは以下のとおりです(すべて Arrow の UInt32/UInt64/Float64 列で構成されます)。

NodalDisp

列名
node_idUInt32
ux, uy, uzFloat64
rx, ry, rzFloat64

MemberForce

列名備考
elem_idUInt32
posFloat64評価位置(0..1 の正規化座標)
n, qy, qz, mx, my, mzFloat64部材内力(軸力・せん断・ねじり・曲げ)
列名
modeUInt32
periodFloat64
omega2Float64
part_x, part_y, part_zFloat64
eff_x, eff_y, eff_zFloat64

TimeHistory

列名
stepUInt64
timeFloat64
node_idUInt32
ux, uy, uzFloat64
rx, ry, rzFloat64

result_get が 1 回に返す行数の上限は 10,000 行です。超過分は切り詰められ、応答の truncatedtrue になります。