ACU-T:5301 船体力学

このチュートリアルでは、自由に浮遊する船体の周囲の流れの設定、解析、および結果表示のための手順を説明します。このシミュレーションでは、波が船体に当たったときの船の変位と船の周囲の流れをシミュレートします。このチュートリアルの目的は、自由表面シミュレーションを実行するために必要ないくつかのモデリングの概念を紹介することです。

CFDシミュレーションの基本的な手順については、ACU-T:2000 ミキシングエルボ内の乱流をご参照ください。このチュートリアルでは、AcuSolveの以下の追加機能を紹介します。
  • 剛体タイプメッシュモーションの使用
  • 剛体メッシュモーションと組み合わせた自由表面機能とガイド表面機能の使用
このチュートリアルでは、次の手順を実行します。
  • 問題の解析
  • AcuConsoleの起動とシミュレーションデータベースの作成
  • 一般的な問題パラメータの設定
  • 事前定義の材料モデルの使用 - アルミニウム
  • 剛体メッシュモーションの作成
  • ボリューム属性とサーフェス属性へのメッシュモーションの適用
  • AcuSolveの実行
  • AcuProbeによる解析のモニター
  • AcuFieldViewでの節点出力のポスト処理

前提条件

このチュートリアルを実行するには、入門チュートリアル、ACU-T:2000 ミキシングエルボ内の乱流ACU-T:2000 ミキシングエルボ内の乱流をすでに完了しAcuConsoleAcuSolve、またはAcuFieldViewの操作に慣れている必要があります。このチュートリアルを実行するには、ライセンス供与済みバージョンのAcuSolveにアクセスできる必要があります。

このチュートリアルを実行する前に、AcuConsole_tutorial_inputs.zip<<Altair_installation_directory>\hwcfdsolvers\acusolve\win64\model_files\tutorials\AcuSolveから作業ディレクトリにコピーします。 Ship_hull_static.acs およびwave_c をAcuConsole_tutorial_inputs.zipから取り出します。

問題の解析

このチュートリアルで扱う問題を下の図に示します。これは、Wigley船モデルの中央断面です。Wigley船体は、船の流体力学的挙動を評価するテストケースとして広く使用されています。このチュートリアルでは、重力波が自由に浮遊するWigley船体に当たる様子をシミュレートし、時間に伴う船体の位置を求める方法を示します。このチュートリアルは、静止船体チュートリアルに似ていますが、船体が剛体として自由に浮遊する点が異なります。

このチュートリアルで考慮する運動は船の長さに対して垂直であるため、精度を損なうことなく計算時間が短い船体の2D断面の解析が適しています。Wigley船体の中央断面寸法は船の全長の関数であり、このチュートリアルで使用されるモデルは船の長さが1mのWigley船体の中央断面です。


図 1. 船体の概略図

表面重力波の生成

海の自由表面上の風による重力波は、UDF(ユーザー定義関数)を使用して生成されます。


図 2. 重力波

表面重力波伝播の線形解は、波の水平速度に関する次の方程式で表現されます。

u = U 0 + U cosh k ( D z ) sinh ( k D ) cos ( ω t k x )

ここで、

u は波の水平粒子速度

U 0 は波の速度

Uは撹乱の速度振幅

k は波番号 = 2 π / λ

λ は波の波長

D は水深

ω は波の周波数 = 2 π T

T は波の時間周期

tは時間

このシミュレーションでは、上の方程式の変数として次の値が使用されます。

U = 0.1256m/s

T = 1.0秒

k = 12.566m-1

U 0 = 0.01m/s

D = 0.5m

このチュートリアルでは、入口で、2秒間の波を生成し、5秒間の波の運動をシミュレートします。このために、C言語で書かれたUDF(wave.c)が使用されます。wave.cで使用される関数の詳細については、AcuSolve User-Defined Functions Manualをご参照ください。

AcuSolveでの2次元シミュレーション

AcuSolve は、2Dサーフェスメッシュ上のCFD解析をサポートしていません。ただし、対象の2Dサーフェスの垂直方向に沿った単一要素の押し出し、および押し出しの両側で対称または滑りの同じ境界条件を使用することにより、ボリュームメッシュでの2D解析をシミュレートできます。この方法では、本質的に問題の2D表現である厚み(押し出し)に沿って解が変化しません。このチュートリアルではこのアプローチを使用します。

ソリッド船体のモデリング

このチュートリアルでは、船体の次の特性を前提とします。

材料 = アルミニウム

密度 = 2702kg/m3

体心 = (1.12971, 0.0, 0.0082984) m

船体質量 = 0.2038kg

船体重量 = 0.2038 × 9.81 = 2.0N

慣性モーメントの成分(kg m2):

I x x = 0.00113969

I y y = 0.0051392

I z z = 0.004006

I x y = I y x = 0

I y z = I z y = 0

I z x = I x z = 0

剛体動解析

剛体は、2種類の力とモーメントの合計によって駆動されます。
  • 内力 / モーメント:統合された流体牽引力とモーメントを表す
  • 外力 / モーメント:指定された力とモーメントを表す

剛体モデルの定義と運動方程式の解を単純化するために局所座標系を使用します。並進および回転の運動方程式は次のとおりです。

  m a + C   v + K   x   = F I + F E

I   α   + D   ω   + L   θ = R I + R E

ここで、

x ,   v ,   a   は、それぞれ、以下で表される並進変位ベクトル、速度ベクトル、および加速度ベクトル:

x = [ x y z ] v = [ v x v y v z ] a = [ a x a y a z ]

θ ,   ω ,   α は、それぞれ、以下で表される角変位ベクトル、角速度ベクトル、および角加速度ベクトル:

θ = [ θ x θ y θ z ] ω = [ ω x ω y ω z ] α = [ α x α y α z ]

m はボディの質量

I = [ I x x I x y I x z I y x I y y I y z I z x I z y I z z ] はボディの2項積(慣性モーメント)マトリックス

C ,   D はそれぞれ並進減衰マトリックスと回転減衰マトリックス

K ,   L   はそれぞれ並進剛性マトリックスと回転剛性マトリックス

F I ,   R I は流体からの内力とモーメント

F E ,   R E は指定した外力とモーメント

2D問題の剛体動解析

  1. 長さ方向(y方向)の船の変位は無視されます。
  2. 船の回転軸はy方向に沿っており、他の軸に沿った変数は無視されます。
  3. 並進減衰マトリックス、並進剛性マトリックス、回転減衰マトリックス、および回転剛性マトリックスは0とみなされます。
  4. 剛体に対して働く唯一の外力がz軸に沿った重力( F g )です。
  5. ボディに対して働く唯一の外力が重力で、これはモーメントを生成しないため、ボディに対して働く外部モーメントは0です。

このチュートリアルでは、y軸に沿って単一要素押し出しが作成されます。上記前提に基づいて、次の式が導き出されます。

x = [ x 0 z ] v = [ v x 0 v z ] a = [ a x 0 a z ]

θ = [ 0 θ y 0 ] ω = [ 0 ω y 0 ] α = [ 0 α y 0 ]

並進の運動方程式は次のようになります。

m   a   = F I + F E

m [ a x 0 a z ] = [ F I x F I y F I z + F g ]

回転の運動方程式は次のようになります。

I   α   = R I + R E

[ I x x I x y I x z I y x I y y I y z I z x I z y I z z ] ×   [ 0 α y 0 ] = [ 0 R I y 0 ]

[ I x y α y I y y α y I z y α y ] =   [ 0 R I y 0 ]

α y   = R I y I y y  

このチュートリアルの慣性モーメントの唯一の重要な成分は、 I y y

解析パラメータの定義

AcuConsoleの起動とシミュレーションデータベースのオープン

次の手順では、AcuConsoleを起動して、船体定常シミュレーション用に設定するデータベースを開きます。その後で、船の運動力学を考慮するようにデータベースに修正を加えます。

  1. Windows のスタートメニューからスタート > Altair <バージョン> > AcuConsoleをクリックして AcuConsoleを起動します。
  2. Fileメニューをクリックし、OpenをクリックしてChoose a fileダイアログを開きます。
    注: ツールバーの をクリックしてChoose a fileダイアログを開くこともできます。
  3. Ship_hull_static.acsの保存先ディレクトリを参照します。
    これが作業ディレクトリとなります。
  4. Ship_hull_static.acsをクリックしてデータベースを開きます。
  5. File > Save Asをクリックし、データベースのファイル名としてShip_hull_dynamicsと入力します。
  6. 保存をクリックしてデータベースを作成します。

一般的なシミュレーションパラメータの設定

次の手順では、シミュレーションの過渡部分に必要なグローバル属性を変更します。

  1. Data Tree ManagerBASをクリックして、Data Tree内の基本ビューに切り替えます。


    図 3.
  2. GlobalData Tree項目をダブルクリックして拡張表示します。
    ヒント: 項目名の横にある をクリックしてツリー項目を拡張表示することもできます。


    図 4.
  3. Problem DescriptionをダブルクリックしてProblem Description詳細パネルを開きます。
    ヒント: ツリー項目を右クリックしてコンテキストメニューからOpenをクリックすることでも、パネルを開くことができます。
  4. Sub titleをShip hull dynamicsとして指定します。


    図 5.

材料モデルパラメータの設定

AcuConsole には、空気、アルミニウム水という3つの事前に定義済みの材料が用意されています。

次の手順では、水とアルミニウムの定義済み材料プロパティがこの問題において目的のプロパティと一致することを確認します。

  1. Data TreeMaterial Modelをダブルクリックして拡張表示します。


    図 6.
  2. Data TreeWaterをダブルクリックしてWater詳細パネルを開きます。
    水のMaterial typeはFluidです。
    注: 詳細パネルのサイズを変更するには、パネルの右側フレームをドラッグします。
  3. Densityタブをクリックします。水の密度が1000.0kg/m3であることを確認します。
  4. Viscosityタブをクリックします。水の粘性が0.001kg/m-secであることを確認します。
  5. Data TreeAluminumをダブルクリックしてAluminum詳細パネルを開きます。

    アルミニウムのMaterial typeはSolidです。

  6. Densityタブをクリックします。アルミニウムの密度が2702.0kg/m3であることを確認します。
  7. データベースを保存して設定のバックアップを作成します。これは、次のいずれかの方法で実行できます。
    • Fileメニューをクリックして、Saveをクリックします。
    • ツールバーの をクリックします。
    • Ctrlキーを押しながらSを押します。
    注: AcuConsoleで加えられた変更は、直ちにデータベースファイル(.acs)に保存されます。保存操作を実行すると、データベースがバックアップファイルにコピーされます。今後の変更内容を利用することを希望しない場合は、このバックアップファイルを使用して、その保存済み状態からデータベースを再読み込みすることができます。

メッシュモーションパラメータの設定

次の手順では、船体の剛体力学に基づいてメッシュモーションを定義します。

  1. Data Tree ManagerALEをクリックして、メッシュモーションに関するすべての設定を表示します。
  2. Mesh Motionを右クリックし、Newをクリックして新しいメッシュモーションを作成します。
  3. Mesh Motion 1の名前をRigid_body_mesh_motionに変更します。
  4. Rigid_body_mesh_motionをダブルクリックし、TypeをRigid Body Dynamicに変更します。
    注: 本項でパラメータに割り当てる値は、船体の材料および形状特性です。ACU-T:5300 静止船体をご参照ください。
  5. X displacementとZ displacementをActiveに設定します。
  6. Y displacementをInactiveに設定します。
  7. X rotationとZ rotationをInactiveに設定します。
  8. Y rotationをActiveに設定します。
  9. Massに対して、0.2038Kgと入力します。


    図 7.
  10. Centerの横のOpen Arrayをクリックします。
  11. 下の図に示すように、船体の中心の座標を入力して、OKをクリックします。


    図 8.
    Local Coordinates:このパラメータは、全体xyz座標系に対して指定される局所xyz座標系の方向を定義します。
  12. Local coordinatesの横のOpen Arrayをクリックします。
    このシミュレーションでは局所座標と全体座標が同じため、次のデフォルトを使用します。


    図 9.
  13. OKをクリックします。
  14. Dyadicの横のOpen Arrayをクリックして、下の図に示すように、慣性モーメントマトリックスを入力します。


    図 10.
    剛体動解析の項で述べたように、この2D問題では、慣性モーメントの重要な成分はIyyのみですが、AcuSolveでは、2次元行列を3Dボリュームメッシュ(AcuSolve2次元シミュレーションを参照)のために正定値を入力する必要があるため、IxxとIzzの入力が必要です。
    船は水の上で自由に浮遊していると仮定されるため、パラメータStiffness、Damping、Rotational stiffness、およびRotational dampingは0と見なされます。
    External forces:重力は、正のz方向に沿って船体に働く外力です。
    F = M a s s × g = 0.2038 * 9.81 = 2.0   N
  15. External forcesの横のOpen Arrayをクリックします。
  16. 下の図のように力ベクトルを入力して、OKをクリックします。


    図 11.
    External Moment:船体に対する唯一の外力は重力です。この力はモーメントを発生させません。そのため、このシミュレーションではExternal Momentが0になります。
    パラメータInitial displacement、Initial velocity、Initial rotation、Initial angular velocity、Initial fluid forces、およびInitial fluid momentsは、シミュレーションの開始時点では船の静止平衡位置が考慮されるため、0と見なされます。
    Surface outputs:このパラメータは、力とモーメントの出力が剛体(このケースでは船体)に加えられるサーフェスの配列をリストします。このシミュレーションでは、流体からの力がFluidボリュームのサーフェス“Hull_guide”を通して船体に加えられます。
  17. Surface outputsの横のOpen Refsをクリックします。
  18. Reference Editorで、Add Rowをクリックします。
  19. Hull_guideを選択して、OKをクリックします。


    図 12.

ボリュームパラメータの適用

  1. Data Tree ManagerBASをクリックして、Data Tree内の基本ビューに切り替えます。
  2. ModelData Tree項目を拡張表示します。
  3. Volumesを拡張表示します。
  4. Guide_Vol_Shipの下で、Element Setをダブルクリックします。
  5. MediumをSolidに変更します。
  6. Material ModelをAluminumに設定します。
  7. Body forceをGravityに設定します。
  8. Mesh motionをRigid_body_mesh_motionに変更します。


    図 13.

ガイド表面に対するメッシュモーションの設定

  1. Data Tree ManagerALEをクリックして、メッシュモーションに関するすべての設定を表示します。
  2. Model > Surfaces > Guide_surfツリー項目を拡張表示します。
  3. Guide Surfaceをダブルクリックします。
  4. Mesh motionをRigid_body_mesh_motionに変更します。


    図 14.

Windows用のUDFのコンパイル

C言語で書かれたUDF(wave.c)がチュートリアルに付属しています。ここで、次の手順に従って、このCプログラムをコンパイルする必要があります。

  1. Windowsのスタートメニューからコマンドプロンプトを起動するため、スタート > Altair <バージョン> > AcuSolve Cmd Promptをクリックします。
  2. ‘cd’コマンドを使用して、ディレクトリを現在の作業ディレクトリに変更します。
    作業ディレクトリには、そのシミュレーションに関するすべてのファイルが保存されます。問題を設定すると、このディレクトリにAcuConsoleデータベースに対応した拡張子.acsのファイルが作成されます。メッシュと解が生成されると、さらにファイルとディレクトリがとAcuSolveによって追加されます。
  3. コマンドacuMakeDll –src wave.cを入力します。
    UDFを使用するために必要な一連のファイルが作成されます。

Linux用のUDFのコンパイル

C言語で書かれたUDF(wave.c)がチュートリアルに付属しています。ここで、次の手順に従って、このCプログラムをコンパイルする必要があります。

  1. 端末で、cdコマンドを使用して、ディレクトリを現在の作業ディレクトリに変更します。
  2. コマンドacuMakeLib -src gravity.cを入力します。
    UDFを使用するために必要な一連のファイルが作成されます。

解の計算と結果の確認

AcuSolveの実行

次の手順では、AcuSolveを起動してこのケースの解を計算します。

  1. ツールバーでをクリックしてLaunch AcuSolveダイアログを開きます。


    図 15.

    このケースでは、デフォルト値を使用します。

    AcuSolveは4つのプロセッサを使用して(可能な場合は、さらに多くのプロセッサを指定できる)実行され、AcuConsoleAcuSolve入力ファイルを生成して、AcuSolveを起動します。AcuSolve は、この問題の非定常解を計算します。

  2. Okをクリックして解析プロセスを開始します。

    計算中、AcuTailウィンドウが開きます。解析の進行状況はこのウィンドウで報告されます。解析プロセスのサマリーで、実行が完了したことが示されます。

    このサマリーで提供される情報は、AcuSolveで使用されるプロセッサの数に基づいています。このチュートリアル内で示されている数と異なる数のプロセッサを使用した場合は、示されているサマリーと実行時のサマリーが少し異なる場合があります。



    図 16.
  3. AcuTailウィンドウを閉じ、データベースを保存して設定のバックアップを作成します。

AcuProbeでのポスト処理

AcuProbeを使用して、解析時間におけるさまざまな変数をモニターできます。このシミュレーションでは、船体にかかる力をモニターすることを目的とします。

  1. ツールバーの アイコンをクリックして、AcuProbeを開きます。
  2. Data TreeSurface Output > Hull_guide > Forces and Momentsを拡張表示します。
  3. x_wall_shear_stressを右クリックし、Plotをクリックします。
    注: プロットを正しく表示するために、ツールバーで をクリックする必要がある場合があります。
  4. 上記手順を繰り返してz_wall_shear_stressをプロットし、Plotをクリックします。


    図 17.
  5. プロットを画像として保存することもできます。
    1. AcuProbeダイアログで、File > Saveをクリックします。
    2. 画像の名前を入力して、Saveをクリックします。
  6. 変数の時系列データをテキストファイルとしてエクスポートして、さらにポスト処理することもできます。
    1. エクスポートする変数を右クリックして、Exportをクリックします。
    2. File nameを入力して、Save as typeに.txtを選択します。
    3. Saveをクリックします。

AcuFieldViewでの結果の表示

計算が終了したので、AcuFieldViewを使用して流れ場を表示する準備ができました。AcuFieldViewは、AcuSolveに緊密に統合されたサードパーティ製のポスト処理ツールです。AcuFieldViewAcuConsoleから直接開始できますが、スタートメニューやコマンドラインから開始することもできます。このチュートリアルでは、AcuSolveによって解が計算された後に、AcuConsoleからAcuFieldViewを開始します。

次の手順では、AcuFieldViewを起動して、zメッシュ変位のコンターを使用した船体運動のアニメーションを作成します。

AcuFieldViewの起動

  1. AcuConsoleツールバーで をクリックしてLaunch AcuFieldViewダイアログを開きます。
  2. OkをクリックしてAcuFieldViewを起動します。
    AcuConsoleからAcuFieldViewを起動するときには、ディスクに書き込まれた、解析の最後の時間ステップの結果が、ポスト処理のために読み込まれます。

船の変位を確認するためのアニメーション

これらの手順では、ユーザーがAcuFieldViewのビューを操作して、白の背景に設定できること、遠近法表示をオフにできること、アウトラインをオフにできること、および表示方向を+zに設定できることを前提としています。AcuFieldViewの基本的な操作がわからない場合は、AcuFieldViewにおけるモデルビューの操作をご参照ください。

  1. 下の図に示すように、モデル全体がはっきり見えるように、形状の方向を設定します。
  2. Boundary Surfacesダイアログで、Show Meshのチェックをはずします。
  3. スカラー関数としてz-mesh-displacementを選択し、Calculateをクリックします。
  4. LegendタブでShow Legendをクリックします。
  5. その色を黒に変更します。
    注: 凡例は、Shiftキーを押しながら左クリックすることにより、移動できます。
  6. ColormapタブでLocalをオンにします。


    図 18.
  7. Tools > Flipbook Build Modeをクリックして、OK をクリックします。
  8. Tools > Transient Dataをクリックして、1つ目の時間ステップデータが境界サーフェスに反映されるまでスライダーを戻します。


    図 19.
  9. Buildをクリックして、アニメーションを作成します。
  10. アニメーションが作成されたら、Frame Rateをクリックして0.1に変更します。
  11. アニメーションをZ-Displacement.mpgとして保存します。

要約

このチュートリアルでは、表面重力波による動的な船体シミュレーションを設定する基本的なワークフローに取り組みました。静止船体チュートリアルの.acsファイルから開始し、船体の剛体運動に適合するように設定を変更しました。ケースが設定された後、AcuSolveを使用して解を生成しました。時間に伴う船体運動のアニメーションを作成できるよう、結果がAcuFieldViewでポスト処理されました。このチュートリアルで紹介した新機能:剛体タイプメッシュモーション、剛体メッシュモーションと組み合わせた自由表面機能とガイド表面機能の使用