hexagon logo

部品サイズを大きくするとエラーが生じてしまう原因について 解決策が分からず質問させていただきました。

魚の遊泳について研究をしております。
魚の遊泳をCFDで表現したく、以前フォーラムのディスカッションにて回答されているコメント(2022/10/27)を参考にし、
のサンプルデータ(「要素移動の強化 LDCモーフィング」scFLOW_LDC_morphing)を使用させていただいています。
 
このfish1_oset.pph内の部品であるfishのサイズは(x,y,z)=(0.05, 0.006001727272, 0.0025)なのですが、
実験魚に近い大きさ((x,y,z)=(0.2, 0.024, 0.047))でシミュレーションを行いたいと思い、scFROWpreの「部品編集」から「座標変換」タブを開き、「スケール」を(X:4,Y:4,Z:18.8)に変更することでfishのサイズを(x,y,z)=(0.2, 0.024, 0.047)にしました。
また、この際、その他の部品(fluid,cyl)も同様に「スケール」変更することですべての部品を同じ倍率で拡大し、解析を試みたのですが、エラー番号38の
「要素番号nnnの要素でSIMPLEC法またはPISOC法による圧力補正で使用される対角項の値が0以下となった。」
というエラーが出てしまい、解析が途中で中断してしまう状態です。
原因として、八分木設定やメッシュ設定はサンプルのままにしていたため、これらの条件が適切でない可能性があるかもしれないと考えているのですが、
オクタントサイズなどに原因があるのでしょうか。(デフォルトのオクタントサイズは最大最小ともに0.0016です。)
ご教授いただけますと幸いです。
よろしくお願いいたします。​
  • 元のサンプルに対して、スケール変更は行っても、その変更にともなう魚表面の移動条件が適切に変更されていないために発生したエラーだと思われます。
     
    サンプルデータを変更した解析を行おうとされているようですが、元のサンプルデータにおいて、魚の動きがどのように実現されいるのかを理解されているでしょうか?
     
    元のデータの理解があれば、スケールの変更に伴い、魚の表面の移動条件に変更が必要であることが理解できると思います。また、今後の研究において、魚の動きを変更する必要性も生じる可能性がありますので、きちんと理解することをお勧めします。
     
    サンプルでは、魚の動きを実現するために、魚表面の面領域wallに対してLDCモーフィング機能を適用して、その面領域にある節点の移動条件をscFLOWのスクリプト機能を使って実現しています。以下の添付画像がそのスクリプトプログラムです。
    これらスクリプトプログラムで使用されている言語には、Javascriptが採用されていますので、この言語の基本的な習得も必要です。
     
    まとめとして、以下の学習をお勧めします。
     
    1.スクリプト機能の理解
    ユーザーズガイド 例題編 例題8.1 非ニュートン流体
    流体の非ニュートン粘性実現にスクリプト機能が使われています。なお、同じことはユーザー関数でもできますが、ユーザー関数はCコンパイラが必要になりますので不便です。コンパイラ不要のスクリプトの使用法を学習してください。なお、スクリプト機能のe-learningコンテンツも公開されています。現在は英語版のみですが、比較的理解しやすい英語となっていますので、参考になると思います。以下、URLです。
     
    2.LDCモーフィングの理解
    ユーザーズガイド 解析手法編参照のこと。または、入手済みと思われるKB8024601_ja - V2021j_scFLOW.pdfの参照のこと。
     
    3.ALE_MOVEコマンドの理解
    ユーザーズガイド ソルバー編参照のこと。ここでLDCモーフィングを使う設定が行われています。
    サンプルデータ(SPHファイル)では、以下の設定となっています。
     
    ALE_MOVE
    Moving
     6
     forced_move
     move_flexible
     @S 3
       1 0
     wall
    /
    /
     
    4.魚の動きを実現している移動条件プログラムの理解
    最終的なゴールになります。是非理解して、ご研究のご利用ください。
    ここでは当然にJavascript言語の理解が必要ですが、scFLOWが用意している関数の理解も必要です。
    use_ale_move_surface
    usf_get_node_fdata
    usf_time
    ユーザーズガイド ソルバー編に説明があります。検索してご確認ください。
     
     
    以上、長くなりましたが、ご参考になりましたら幸いです。
     
     
  • ご助言いただきましてありがとうございます。
    参考にさせていただきます。
     
    まだ理解を深めている段階ではありますが、取り急ぎ御礼申し上げます。