(修正版)3x3 ブロッキングシェル要素の自動生成機能

Closes #59 (closed), #768 (closed) (注: #768 (closed) も close してよいかは要判断)

!642 (closed) の修正版です。59_shell_auto_input の rebase & conflict 解消を行った上で、失敗していたテストに関わる修正と、chikasuiro/FrontISTR!2 (merged) の提案を取り込みました。途中で取り下げた変更は、加えた側・戻した側の両方のコミットから除いて履歴を整理したため、議論中で触れている 6d0bf870 などのコミットはブランチに残っていません。

!642 (closed) からの変更

  1. 641/761/781 の直接入力を受け付ける
  • !642 (closed) は全体メッシュでの 641/761/781 の直接入力をエラーにしていたが、この判断を取り下げた。
  • 611/731/741 入力へ置換していたテストとチュートリアルを元に戻した。SA-AMG の失敗もこれで解消する。
  1. 熱解析で 761/781 を受け付ける
  • 熱伝導のテストは、逐次では温度の残差が実行ごとに変わる形で、MPI では error setMASS を出す形で失敗していた。
  • 逐次では rmerge がメッシュの節点数ぶん結果配列を読んで範囲外に出て、MPI では 761/781 の分散メッシュがそのまま熱解析へ渡っていた。
  • !642 (closed) の議論よりソフトウェア側で対処することとし、熱解析は 761/781 を並進節点だけで 731/741 として組み立て、回転ダミー節点は温度 0 で固定する。6 自由度シェルで自由度 4-6 を使わないのと同じ扱いである。行列の非ゼロ構造も並進節点だけで作る。
  • !642 (closed) の熱解析専用のメッシュ読込経路は除き、fistr1・hecmw_part1・rmerge が同じメッシュを読むようにした。熱の結果にもダミー節点を温度 0 で出力する。READRESULT は結果を局所節点の添字で読むため、結果はメッシュと同じ節点を持つ必要がある。
  1. ダミー節点の生成を混在メッシュに限る(chikasuiro/FrontISTR!2 (merged))
  • 611/731/741 と 3 自由度の要素が同じメッシュにあるときだけ、ダミー節点を生成して 641/761/781 へ変換する。シェル・梁だけのモデルは従来どおり 6 自由度の要素で解くため、テストの参照解は master のままである。
  • 自動生成したダミー節点は ALL に入れない。ALL への並進の拘束・荷重が、ダミー節点(回転)にまで及んでいた。
  • !BOUNDARY と !CLOAD の自由度 4-6 は、!642 (closed) の fstr_setup_BOUNDARY の書き換えに代えて、制御ファイルの読込後にダミー節点の自由度 1-3 へ移す。移さない !SPRING、!VELOCITY、!ACCELERATION、!FLOAD、!EQUATION の自由度 4-6 はエラーで止める。
  1. 変換を通るテストと、誤った入力での停止(議論 1〜4)
  • 混在メッシュの 731/741 入力のテストを追加。
    • 並進拘束版、回転拘束版、熱解析の 3 種類(CI リソースの問題がありますが...)
  • 静解析の 761/781、動解析の 641/761/781 の熱荷重も停止
    • 停止メッセージは、hecmw_abort が出力を書き出さずに終了するため表示されない(master 既有の問題)
  • ダミー節点を手書きした 641/761/781 で、自由度 "4-6" の !BOUNDARY, !CLOAD は、ダミー節点の自由度 1-3 に書くよう促して停止
    • 手書きかどうかは、入力に書いたダミー節点だけが ALL に入ることで見分ける
  • append_new_groups は、既存の append_new_group と同じく、グループ名が既存と重なれば停止する。
  • 分散メッシュで、641/761/781 の要素を持たないランクでも自由度 4-6 を移す(回転拘束版の MPI テストで発覚、4ea984dd で修正)
    • 並進節点が外部節点としてだけ入るランクで移し替えが行われず、別の節点の自由度や配列の外へ書き込んでいた
    • 移し替えと停止の判断は全ランクの集計で揃え、回転を持たない節点への !CLOAD の検査は内部節点で行う

変更内容

!642 (closed) の 3 コミットは、後で取り下げた部分(全体メッシュでの入力の拒否、fstr_setup_BOUNDARY の書き換え、テスト入力の書き換え)を除いてある。

コミット タイトル 内容 元の MR
a55f6d37 Add dummy shell node create 731/741 の読込時に回転ダミー節点を生成して 761/781 へ変換する !642 (closed)
912cbe3b Add finite rotation for 781 shell split-layout の 781 で MITC4 の有限回転に対応する !642 (closed)
99894758 Add beam conversion 611 入力を内部 641 へ変換する !642 (closed)
4b5cdf63 Support 761/781 in heat analysis 熱解析で 761/781 を 731/741 として組み立て、回転ダミー節点を温度 0 で固定する 本 MR
41544672 Create the rotational dummy nodes only for a mixed-dof mesh 611/731/741 と 3 自由度の要素が同じメッシュにあるときだけ変換する chikasuiro/FrontISTR!2 (merged)
80c6c78f Leave the rotational dummy nodes out of the heat matrix pattern 熱解析では 641/761/781 の非ゼロ構造を並進節点だけで作る chikasuiro/FrontISTR!2 (merged)
6d3248b9 Keep the generated dummy nodes out of the node group ALL 自動生成したダミー節点は ALL に入れない。入力に書いたダミー節点はこれまでどおり ALL に入る chikasuiro/FrontISTR!2 (merged)
3050ef30 Move the rotational dof to the dummy nodes after reading the control file 制御ファイルの読込後に !BOUNDARY と !CLOAD の自由度 4-6 をダミー節点へ移し、移さない条件の自由度 4-6 はエラーで止める chikasuiro/FrontISTR!2 (merged)
89160d60 Add tests of 731/741 input mixed with solid elements 手書きの混在テストからダミー節点を除いた 731/741 入力と、自由度 4-6・ALL の条件を与える 741 入力のテストを加える 本 MR
4ca98466 Add heat tests of a solid-shell mixed model 同じ混在モデルの熱伝導のテストを、手書き 761/781 と 731/741 入力で加える 本 MR
d310aedd Stop on the thermal load of 641/761/781 熱荷重の分岐が無かった静解析の 761/781、動解析の 641/761/781 を、731/741 と同じく停止させる 本 MR
ccc05bc3 Stop on dof 4-6 given to beam/shell nodes with explicit dummy nodes ダミー節点を手書きした要素の並進節点に !BOUNDARY・!CLOAD の自由度 4-6 を与えたら、ダミー節点の自由度 1-3 に書くよう促して停止する 本 MR
fd89f2ef Check the group names in append_new_groups 追加するグループ名が既存と重なれば、append_new_group と同じく停止する 本 MR
4ea984dd Convert the rotational dof on every rank of a distributed mesh 641/761/781 の要素を持たないランクでも自由度 4-6 を移し替えるよう、判断を全ランクの集計で行う 本 MR
Edited by Kanato Kono

Merge request reports

Loading
Loading