ACU-T:5403 圧電流体エネルギーハーベスタ:流体構造連成

このチュートリアルでは、圧電流体ハーベスタのシミュレーションの設定、解析、および結果表示のための手順を説明します。このシミュレーションでは、圧電流体ハーベスタが流体流路に置かれます。ハーベスタは、流体流れの中で渦を引き起こす渦発生体としても機能する円筒マウントに取り付けられます。このチュートリアルでは、渦によって生成される圧力場と流れのハーベスタ構造の間の相互作用をシミュレートします。AcuSolve が構造ソルバーと組み合わせて使用され、流体構造直接連成(DC-FSI)アプローチを使用してハーベスタの構造変位が計算されます。変形する構造と接触したときの流体領域のメッシュの変形の計算には、Arbitrary Lagrangian Eulerian(ALE)アプローチが使用されます。

CFDシミュレーションの基本的な手順については、ACU-T:2000 ミキシングエルボ内の乱流をご参照ください。流体-構造multiphysics問題に対するPFSIアプローチは、圧電流れエネルギーハーベスタPFSIのチュートリアルで説明しました。このチュートリアルでは、AcuSolveの以下の追加機能を紹介します。
  • 直接連成FSIシミュレーション(DC-FSI)の設定
  • AcuSolve/OptiStructによるマルチフィジックス連成
  • 連成をサポートするための外部コードパラメータの設定
  • サーフェスへの外部コードパラメータの割り当て
このチュートリアルでは、次の作業を実行します。
  • 問題の解析
  • HyperWorks CFDの起動とシミュレーションデータベースの作成
  • シミュレーション用のメッシュをインポートします。
  • 一般的なパラメータの設定
  • 連成サーフェスの適切な境界条件の設定
  • OptiStructの実行
  • AcuSolveの実行
  • HyperWorks CFDによる解析のモニター
  • HyperWorks CFDでの節点出力のポスト処理
  • HyperWorks CFD Postで過渡シミュレーションのアニメーションを作成します。

前提条件

入門チュートリアルであるACU-T:2000 ミキシングエルボ内の乱流をすでに完了している必要があります。ここでは、HyperWorks CFDおよびAcuSolveをある程度使い慣れていることを前提としています。ライセンス供与済みバージョンのAcuSolveにアクセスできることも必要です。

このチュートリアルで使用される連成構造ソルバーは、別のHyperWorks製品であるOptiStructです。このチュートリアルを実行するには、ライセンス供与済みバージョンのOptiStructにアクセスできる必要があります。このチュートリアル用の対応するOptiStructの設定は、OptiStructのチュートリアルマニュアルに記載されています。

このチュートリアルを実行する前に、ここをクリックしてチュートリアルモデルをダウンロードしてください。 ACU-T5403_Harvester_DCFSI.hm およびslab_dcfsi.fem をHyperWorksCFD_tutorial_inputs.zipから抽出します。 ファイルACU-T5403_Harvester_DCFSI.hmには、この問題のモデルの流体部分に関する形状情報が保存され、slab_dcfsi.femは、この問題のOptiStruct入力データです。

このチュートリアルでモデリングウィンドウに表示されるオブジェクトの色と、ユーザーの画面に表示されるオブジェクトの色は異なる場合があります。HyperWorks CFDのデフォルト配色は“ランダム”であり、作成されたグループに色がランダムに割り当てられます。また、このチュートリアルはWindows上で作成されました。このチュートリアルを異なるオペレーティングシステムで実行する場合は、画面に表示されるイメージとこのチュートリアルで表示されるイメージが多少異なる可能性があります。

Note: このチュートリアルでは、ジオメトリのクリーンアップやメッシュ作成に関する手順は説明していません。

問題の解析

CFDシミュレーションにおける重要なステップは、目前の工学的問題を調べ、AcuSolveに対して指定する必要のある重要なパラメータを決定することです。パラメータは、形状要素(入口、出口、壁など)に基づいて行うことができるとともに、流れの条件(流体プロパティ、速度など)に基づいて行うことができます。

問題の定常状態部分を Figure 1で概略的に示します。CFDモデルには、円筒体と片持ちビームで構成されています。円筒体は渦を発生させます。この渦は、ビームの両側に交互の非対称圧力分布を生じさせます。このような交互の圧力分布は、ビームに振動力を加え、ビーム内に持続可能な周期振動を発生させます。

流体ソルバーでは、固体をモデル化する必要はありません。ただし構造ソルバーは、構造のサーフェスに作用する流体の流れ場と圧力場を使用して、構造変形について解析します。構造ソルバーが構造変位を計算するために必要とする情報は、流体ソルバーから構造ソルバーに渡されます。これに対して構造ソルバーは、変位情報を流体ソルバーに渡します。流体ソルバーは、この変位情報を使用して次の時間ステップにおける流れ場を計算し、構造ソルバーはこの流れ場を使用して変位情報を更新します。このような流体ソルバーと構造ソルバーの間の情報交換は、時間ステップごとに行われ、どちらかのソルバーがシミュレーションの終了を通知するまで繰り返されます。 Figure 2 は、ビームの配列とそのさまざまな層を示しています。



Figure 1. 問題の概略図


Figure 2. ビームとそのさまざまな層

流体構造連成

流体構造連成は、流体の流れとそれに接触している変形可能なソリッド構造間の連成です。FSI問題は外部または内部の流れの問題にすることができます。流体の流れは、大気中の風車の羽根のように、固体が流れにさらされる、外部の流れにすることができます。また、流体の流れは、変形可能な管内の流体の流れのように、固体が流れを囲む、内部の流れにすることもできます。いずれの場合も、問題を解くための原理は同じです。流体の流れが構造に接すると、流体圧力が固体に応力を与えることによって、構造が変形する可能性があります。変形の大きさは、構造材料の剛性と流体によって与えられる圧力の大きさによって異なります。構造形状の変形は、構造周辺の流れの特性の変化につながります。

FSI問題は、構造力学と流体力学の連成法則が解に影響するマルチフィジックス問題です。この連成を実現するために広く使用されているアプローチが2つあります。
  1. Practical-FSI(P-FSI):構造は、モード空間内で縮小され、インターフェース節点を通じて流体領域に連成されます。ソルバー間の連成が単一パス自体で発生します。P-FSIシミュレーションでは、構造挙動が線形に制限されます。
  2. Direct coupling(DC-FSI): 連成は、構造ソルバーと流体ソルバー間の共同シミュレーションであり、それぞれのソルバーが同時に進行し、時間ステップごとに平衡に反復されます。

構造の変形が流体の流れを大幅に変えるほど大きい場合は、DC-FSI連成シミュレーションアプローチを使用する必要があります。このアプローチでは、流体の流れと圧力の場が構造変形に影響を与え、構造変形が流れと圧力に影響を与えると、それらの影響に関する情報がソルバー間でリアルタイムに交換されます。

連成方法に違いがあるとすると、同じ問題をP-FSIアプローチとDC-FSIアプローチを使用して解いた場合に結果に若干の違いが出る可能性があります。使用すべきアプローチの選択は、問題と使用可能なリソースに依存します。前述のように、P-FSIアプローチは、構造の変形が小さく、構造挙動を線形として近似できる場合に限定する必要があります。その他の場合は、DC-FSIを選択します。ただし、DC-FSIシミュレーションは、計算リソースのコストが高くなります。これを踏まえて、P-FSIシミュレーションは、DC-FSIシミュレーションを実行する前の予備テストシミュレーションとして使用することもできます。

FSIには安定型と振動型があります。安定型FSIでは、流れも変化しない限り、構造の変形形状が時間とともに変化しません。振動型FSIでは、構造が変形すると、変形していないに戻ろうとして、変形プロセス全体がそれ自体で繰り返されます。

AcuSolveでのメッシュモーションアプローチ

多くのシミュレーションで、時間に伴う領域の変形が必要とされます。AcuSolve は、動的メッシュを処理するための次の2つのアプローチを提供しています。
  1. Arbitrary Lagrangian Eulerian(ALE)
  2. Interpolated Mesh Motion。

Arbitrary Lagrangian Eulerian(ALE)

ALEは、計算節点が要素品質の最適化のために自由に移動するメッシュモーション用のアプローチです。適切なメッシュ位置に到達するために、追加の偏微分方程式(PDE)が解かれます。ALEは、複雑な任意の運動を処理できるため、移動メッシュ問題をシミュレートする場合の最も一般的なアプローチです。一般的には、追加のPDEを解くことになるため、計算コストが高くなります。1Dや2Dの動きのように単純な動きの場合は、Interpolated Mesh Motion、汎用の指定モーション、節点境界条件ベースのアプローチなどのより高速なアプローチを使用できます。

HyperWorks CFDの起動とHyperMeshデータベースのオープン

  1. WindowsのスタートメニューからStart > Altair <version> > HyperWorks CFDをクリックしてHyperWorks CFDを起動します。
  2. HomeツールのFilesツールグループからOpen Modelツールをクリックします。


    Figure 3.
    Open Fileダイアログが開きます。
  3. モデルファイルの保存先ディレクトリを参照します。HyperMeshファイルのACU-T5403_Harvester_DCFSI.hmを選択してOpenをクリックします。
  4. File > Save Asをクリックします。
  5. 名前をHarvesterとして新しいディレクトリを作成し、このディレクトリへ移動します。
    このディレクトリが作業ディレクトリになり、シミュレーションに関連するすべてのファイルがこの場所に保存されます。
  6. データベースのファイル名としてHarvesterと入力するか、都合のいい名前を選択して入力します。
  7. 保存をクリックしてデータベースを作成します。

形状の検証

Validateツールは、モデル全体をスキャンし、サーフェスおよびソリッド上でチェックを実行して、形状に不具合(フリーエッジ、閉じたシェル、交差、重複、スライバーなど)があればフラグ付けします。

シミュレーションの物理パートに集中するために、このチュートリアルの入力ファイルにはすでに検証済みの形状が含まれています。ジオメトリリボンのValidateアイコンの左上隅に青色のチェックマークが表示されていることを確認します。これは、形状が有効で、フロー設定に進めることを示しています。


Figure 4.

流れのセットアップ

シミュレーションパラメーターとソルバーの設定

  1. Flowリボンから Physicsツールをクリックします。


    Figure 5.
    Setupダイアログが開きます。
  2. Physics modelsの設定で
    1. Single phase flowでIncompressibleオプションが選択されているのを確認します。
    2. Time frequencyをTransientに設定します。
    3. Time step sizeを0.01sに設定し、Final timeを0.0に設定します。
    4. Turbulence modelにSpalart-Allmarasを選択します。


    Figure 6.
  3. Solver controls設定をクリックします。
    1. Minimum stagger iterationsを3に設定します。
    2. Maximum stagger iterationsを20に設定します。
    3. Transient maximum stepsを300に設定します。


    Figure 7.
  4. ダイアログを閉じてモデルを保存します。

Multiplier Functionの作成

流れ、によりビームに作用する力は、最初の数時間ステップの間に徐々に増加して行きます。最初の数時間ステップの後は、流体からの力全体が増加することなくビームに伝達されます。これをmultiplier functionを使用して実現します。次の数手順で線形multiplier functionを作成し、後で、ビームに作用する荷重の力multiplier functionとして割り当てます。

  1. Flowリボンで、Setupツールセットの横の矢印をクリックし、Multipliersを選択します。


    Figure 8.
    Multiplier Libraryが開きます。
  2. をクリックして、新しい乗数を追加します。
  3. multiplier creationダイアログで、左上隅をクリックすることで、乗数関数の名前をForceRampに変更します。
  4. TypeをPiecewise Linearに、VariableをTime Stepに設定します。
  5. EvaluationがTime Stepに設定されていることを確認します。
  6. 次の図に示すようにテーブルの値を入力します。


    Figure 9.

材料プロパティの割り当て

  1. Flowリボンから Materialツールをクリックします。


    Figure 10.
  2. モデルボディを選択します。
    ソリッド全体がハイライト表示されます。
  3. マイクロダイアログのドロップダウンメニューからWaterを選択します。


    Figure 11.
  4. ガイドバーで、をクリックしてコマンドを実行し、ツールを終了します。

流れ境界条件の割り当て

  1. Flowリボンから Constantツールをクリックします。


    Figure 12.
  2. X軸の負の方向の一番左側の面を選択します(下図参照)。
  3. マイクロダイアログで、inflow velocity typeでCartesianを選択し、X velocityを10に設定します。


    Figure 13.
  4. マイクロダイアログで、Turbulenceタブをクリックします。Turbulence input typeでDirectを選択し、Eddy viscosityを1e-5に設定します。


    Figure 14.
  5. ガイドバーをクリックします。
  6. Outletツールをクリックします。


    Figure 15.
  7. X軸の正の方向の一番右側の面を選択します(下図参照)。
  8. マイクロダイアログで、静圧と圧力損失係数がともに0に設定されていることを確認します。


    Figure 16.
  9. ガイドバーをクリックします。
  10. Slipツールをクリックします。


    Figure 17.
  11. Z軸の負の方向の一番右側の面を選択します(下図参照)。


    Figure 18.
  12. ガイドバーをクリックすると、コマンドを実行し、ツール内に留まります。
  13. Boundariesの凡例で、Slipをダブルクリックしてz_negという名前に変更し、Enterを押します。
  14. モデルを回転させて、反対側の面を選択します。
  15. ガイドバーをクリックします。
  16. Boundariesの凡例で、Slipの名前をz_posに変更します。
  17. Y軸の正の方向の一番右側の面を選択します(下図参照)。


    Figure 19.
  18. ガイドバーをクリックします。
  19. Boundariesの凡例で、Slipの名前をy_posに変更します。
  20. モデルを回転させて、反対側の面を選択します。
  21. ガイドバーをクリックします。
  22. Boundariesの凡例で、Slipの名前をy_negに変更します。
  23. 境界の凡例でDefault Wallsを右クリックしてIsolateを選択します。
  24. No Slipツールをクリックします。


    Figure 20.
  25. 下図で示すように、円筒面を選択します。


    Figure 21.
  26. ガイドバーをクリックします。
  27. Boundariesの凡例で、Wallの名前をcylinderに変更します。
  28. cylinderを右クリックし、Hideを選択します。

モーションの設定

メッシュモーションタイプの定義

このチュートリアルの冒頭では、構造ソルバーが変位を計算してその変位をAcuSolveに渡す役割を担うことを説明しました。次の手順では、AcuSolveと外部コード(このケースではOptiStruct)の間の接続を設定します。
  1. Motionリボンから Settingsツールをクリックします。


    Figure 22.
    Setupダイアログが開きます。
  2. Mesh motionをArbitraryに変更します。
  3. Solver controls設定をクリックして、Mesh deformationをアクティブにします。
  4. External code設定をクリックして、External codeオプションをアクティブにします。
  5. External SolverをOptiStructに、Communication typeをSocketに設定します。
  6. External socketオプションを無効して、Socket hostをlocalhostに設定します。
  7. Socket portを48002に設定します。
    ソケットポートは構造ソルバーに依存します。48002がOptiStructのデフォルトであるため、この例ではこのポートを使用しています。ここに入力する正しいポート番号を確認するには、お使いの構造ソルバーのマニュアルをご参照ください。
  8. Scale fieldsをアクティブにして、Multiplier functionでForceRampを選択します。
    これにより、外部コードから伝達される力が、このMultiplier Functionによる指定に従い、最初の数ステップ(このケースでは20個の時間ステップ)にわたって徐々に増大します。


    Figure 23.
  9. ダイアログを閉じてモデルを保存します。

メッシュ変位境界条件の定義

  1. Motionリボンから External Surfaceツールをクリックします。


    Figure 24.
  2. 下図で示すように、ビームのフェイスを選択します。
  3. マイクロダイアログで、Gap methodにFactorを選択し、Gap factorを0に設定します。


    Figure 25.
  4. External Code Surfaceの凡例で、External surfaceの名前をbeamに変更します。
  5. ガイドバーをクリックします。
  6. Aキーを押して、すべてのサーフェスを表示します。
  7. Planar Slipツールをクリックします。


    Figure 26.
  8. Z軸の負の方向の一番右側の面を選択します(下図参照)。


    Figure 27.
  9. ガイドバーをクリックします。
  10. Mesh Motionの凡例で、Planar Slipの名前をz_negに変更します。
  11. モデルを回転させて、反対側の面を選択します。
  12. Mesh Motionの凡例で、Planar Slipの名前をz_posに変更します。
  13. ガイドバーをクリックします。

時刻歴出力ポイントの定義

Time History Outputコマンドを使用すれば、領域内の任意の点の節点解を抽出することができます。このシミュレーションでは、片持ちビームの先端での変位を確認します。

  1. Solutionリボンで、Probeツールのボディをクリックします。


    Figure 28.
  2. Z軸の負の方向の一番右側の面で、ビームの先端の上ポイントを選択します(下図参照)。
  3. マイクロダイアログで、Point Radiusの値を0.01に設定します。


    Figure 29.
  4. Point Probesの凡例で、Point Probeの名前をTip_Monitor_Pointに変更します。
  5. ガイドバーをクリックします。

節点出力の定義

節点出力コマンドは、出力頻度や保存されている状態の数などの節点出力パラメータを指定します。

  1. Solutionリボンから Fieldツールをクリックします。


    Figure 30.
    Field Outputダイアログが開きます。
  2. solution variablesで、
    1. Write initial conditionsを有効にします。
    2. Write results at time step intervalを有効にします。
    3. Time step intervalを2に設定します。


    Figure 31.
  3. ダイアログを閉じてモデルを保存します。

OptiStructの実行

  1. WindowsのスタートメニューからStart > Altair <version> > Compute ConsoleをクリックしてOptiStructを起動します。
  2. Input File(s)の横のをクリックします。
  3. OptiStructモデルファイルの保存先ディレクトリに移動します。
  4. slab_dcfsi.femファイルを選択します。
  5. Use solver controlを有効にします。


    Figure 32.
  6. RunをクリックしてOptiStructを起動します。

AcuSolveの実行

  1. Solutionリボンから Runツールをクリックします。


    Figure 33.
  2. Parallel processingオプションをIntel MPIに設定します。
  3. Optional: プロセッサーの数を、環境に応じて4または8に設定します。
  4. Automatically define pressure referenceオプションを無効にします。
  5. Default initial conditionsを展開して、Pre-compute flowを無効にします。
  6. X velocityを10m/sに設定します。
  7. Eddy viscosityを1e-05m2/secに設定します。
  8. 他のオプションはデフォルト設定のままにし、RunをクリックしてAcuSolveを起動します。


    Figure 34.
  9. Run Statusダイアログでソルバージョブを右クリックし、View log fileを選択します。
    解析の進行状況は、このウィンドウで報告されます。

    AcuSolveは起動されると、外部コード連成の設定時に指定されたソケットポート上で、OptiStructからの最初の通信を受信待機します。ソケットポートを通信用に初期化するOptiStructの実行を開始する必要があります。接続が確立されると、各ソルバーは交互にシミュレーションステップを通じてデータを送受信します。



    Figure 35.

時刻歴のプロット

  1. Run Statusダイアログでソルバージョブを右クリックし、Plot time historyを選択します。
  2. Plot Utilityダイアログで、をクリックして新しいプロットを作成します。
  3. X-AxisにはTimeを選択します。
  4. Y-Axis見出しで、Run Dataの横の矢印をクリックしてTime Historyを選択します。


    Figure 36.
  5. velocityの横の矢印をクリックしてmesh_displacementを選択します。
  6. セレクターをmesh_y_displacementに設定します。
  7. Node 1を選択します。


    Figure 37.
  8. Createをクリックします。


    Figure 38. ビームの先端のMesh_y_displacementプロット

    上のプロットは、ビームが流れと接触したときの流体力によるビームの先端の変位を示しています。

HW-CFD Postによる結果のポスト処理

この手順では、圧力のアニメーションを作成します。
  1. 解析の完了後、Postリボンに移動します。
  2. メニューバーFile > Open > Resultsをクリックします。
  3. 作業ディレクトリでAcuSolveログファイルを選択し、ポスト処理の結果を読み込みます。
    ソリッドとすべてのサーフェスがPostブラウザに読み込まれます。

    Run Statusダイアログでソルバージョブを右クリックし、Visualize resultsを選択することで、HyperWorks CFD Postに結果をインポートすることもできます。

  4. View Cube上のBottomフェイスをクリックし、モデルを揃えます。


    Figure 39.
  5. Postブラウザで、z_pos境界を右クリックし、Isolateを選択します。
  6. モデリングウィンドウの下部のスライドバーを74/151まで移動します。


    Figure 40.
  7. z_posを再び右クリックし、Editを選択します。
  8. 表示プロパティマイクロダイアログで、表示をpressureに設定します。
  9. Legendのトグルスイッチをアクティブにし、をクリックして凡例を更新します。
  10. をクリックして、Colormap NameをRainbow Uniformに設定します。


    Figure 41.
  11. ガイドバーをクリックします。
  12. Animationツールバーのをクリックし、流れのアニメーションを表示します。


    Figure 42.
  13. アニメーションを保存します。
    1. File > Screen Capture > Advanced Screen Captureを選択します。
    2. をクリックして、Include mouse cursorチェックボックスをオフにします。
    3. frame rateを24に設定し、video settingとしてGIFを選択します。
    4. ツールバーのをクリックし、記録したい領域をドラッグオーバーします。
    5. をクリックして記録を開始します。記録を終了する場合も同じアイコンを使用します。
    6. ファイルの名前を指定し、保存します。

要約

このAcuSolveチュートリアルでは、直接連成(DC-FSI)アプローチを使用してFSI問題を正しく設定し、解析しました。DC-FSIアプローチは連成シミュレーションアプローチであり、構造ソルバーと流体ソルバーの両方が同時に実行されて、シミュレーションの各時間ステップで情報を交換します。流体ソルバーは流れと圧力の情報を構造ソルバーに渡し、これらの情報を使用して構造内の変位が特定されます。構造ソルバーは変位情報を流体ソルバーに渡し、流体ソルバーは流れ場と圧力場を再計算します。両方のソルバーはこのようにしてシミュレーションの結果を更新および交換し、解に達します。チュートリアルは、HyperWorks CFDでデータベースを作成し、基本的なシミュレーションパラメータを設定することから始めました。次に、AcuSolveと構造ソルバーの間の接続を設定するためのパラメータを定義して、連成シミュレーションによって解を生成しました。結果は、HyperWorks CFDでポスト処理され、流体流れと接触したときのビームの変位のアニメーションが生成されました。