ACU-T:2100 SST乱流モデルを使用した翼上の乱流

このチュートリアルでは、AcuSolveにおけるSSTおよびK-Omega乱流モデルの設定のための手順を説明します。調査適用対象は、迎角が5度のNACA0012翼上の流れです。AcuSolve を使用して、翼の揚力と抗力を得ます。このチュートリアルの目的は、SSTおよびK-Omega乱流モデルを使用して外部空力シミュレーションを実行するために必要なモデリングの概念を紹介することです。

CFDシミュレーションの基本的な手順については、ACU-T:2000 ミキシングエルボ内の乱流をご参照ください。このチュートリアルでは、AcuSolveの以下の追加機能を紹介します。
  • SSTまたはK-Omega乱流モデルの使用
  • 遠方場境界条件タイプの使用
  • Variable Managerを使用した変数と式の格納
  • パネル領域への式の入力

前提条件

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

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

問題の解析

CFDシミュレーションにおける重要な最初のステップは、解析対象となる工学的な問題を調べ、AcuSolveに対して指定する必要のある設定を決定することです。設定は、形状コンポーネント(ボリューム、入口、出口、壁など)に基づいて行うことができるとともに、流れの条件(流体の物性、速度、流れを乱流または層流のどちらでモデル化するのかなど)に基づいて行うことができます。

このチュートリアルで扱う問題は、下の図に示しています。これは、NACA0012翼プロファイルを通過して流れる空気を含む、円筒状の境界領域で構成されます。シミュレーションは、翼のスパン方向に押し出される要素の単一層のみを含めることにより、2Dとして実行されます。領域の遠方場境界の速度ベクトルは、迎角が5度、レイノルズ数が1.0e6になるように指定されます。翼弦は1mで、シミュレーションには標準の空気の材料物性が使用されます。



図 1.

円筒状の領域の直径は、翼弦の500倍に設定されます。このように大きな境界ボリュームを選択することで、遠方場境界が翼から十分に遠い位置に配置され、解析の領域の閉塞による影響を回避できます。

この翼の最初のシミュレーションは完全な乱流と見なされ、SST乱流モデルを使用します。これらのシミュレーション条件は、翼の前縁の境界層が、ある種の粗さ要素を伴って移動し、翼の全長に渡る完全な乱流の境界層を作成するシナリオに対応しています。

解析パラメータの定義

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

このチュートリアルでは、まずデータベースの作成と一部の事前定義済み変数の読み込み、形状に依存しない設定の入力、形状の読み込み、グループの作成、グループ属性の設定、グループへの形状コンポーネントの追加、およびグループへのメッシュコントロールと境界条件の割り当てを行います。次にメッシュを生成してAcuSolveを実行し、定常状態解に収束させます。最後に、AcuFieldViewおよびAcuProbeを使用して結果を確認します。

次の手順では、AcuConsoleを起動し、AcuConsoleの設定を保存するためのデータベースを作成して、AcuSolve用のメッシュ情報と解情報を保存する場所を設定します。

  1. Windows のスタートメニューからスタート > Altair <バージョン> > AcuConsoleをクリックして AcuConsoleを起動します。
  2. Fileメニューをクリックし、Newをクリックし、New data baseダイアログを開きます。
    注: ツールバーの をクリックしてNew data baseダイアログを開くこともできます。
  3. 作業ディレクトリとして使用する場所に移動します。
    このディレクトリには、そのシミュレーションに関するすべてのファイルが保存されます。AcuConsoleのデータベースファイル(.acs)はこのディレクトリに保存されます。メッシュと解が作成されたら、追加のファイルとディレクトリがこのディレクトリ内に作成されます。
  4. TurbulentAirfoil_SSTという名前の新規フォルダを作成し、このフォルダを開きます。
  5. データベースのFile nameとしてTurbulent_Airfoil_SSTと入力します。
    注: AcuConsoleによって書き込まれたファイルを他のアプリケーションで読み取り可能にするためには、データベースのパスと名前にスペースが含まれないようにしてください。
  6. データベースを保存して設定のバックアップを作成します。

Variable Managerを使用した式と変数の定義

この手順では、AcuConsoleVariable Managerを使用して、モデルの設定プロセスで使用する式のリストを作成します。

Variable Managerは便利なユーティリティで、これを使用して変数や式を定義し、それらをモデルの構築プロセス全体で使用するさまざまな設定への入力として後で参照することができます。変数によってモデルを構築した場合、Variable Managerから1つのパラメータを単純に変更することで、モデル全体を非常に簡単に更新できます。このチュートリアルでは、このプロセスについて説明します。

AcuConsoleの式のシンタックスには、2つの異なるタイプのエントリメソッドがあります。1つ目のエントリメソッドは、即時的評価と言われるもので、=記号を使用して変数に値を割り当てます。たとえば、2mの領域で平均速度が2m/sのモデルに対する入口境界について考えてみます。volumeFlowRateという名前の変数を作成する場合には、次のような式をVariable Managerに入力できます。
名前 Expression
volumeFlowRate =2*2
=シンタックスを使用する場合、テキスト入力領域外をクリックすると式が即時に評価され、その式の計算に使用される方程式はデータベースに保存されません。ただし、式を関係として保存したい場合は、=を:=に置き換えることで、関係式の定義を使用できます。この場合、AcuConsoleが式を保存して、必要に応じてこれを評価します。つまり、他の式の関数である式を定義でき、1つの式に対する変更がその他すべての従属式に伝播されるようになります。たとえば、関係式を使用して入口流量を再定義する場合には、次のように設定します。
名前 Expression
inletArea 2.0
averageVelocity 2.0
volumeFlowRate :=inletArea*averageVelocity

このシンタックスを使用すると、volumeFlowRateの式がデータベースに保存され、inletAreaまたはaverageVelocityが更新されたびに自動更新されます。Variable Managerで定義される変数はすべて、パネル領域で整数または浮動小数点の値を指定するときに参照できます。同じ式シンタックスを使用可能です。

  1. メインツールバーで、Variable Listアイコンをクリックします。


    図 2.

    Variable Managerが開きます。

  2. Variable Managerで新しい変数を作成するには、Addをクリックします。
    Variable Managerで新規に変数を作成するには、Addをクリックし、適切な入力を表の列に入力します。表の列は、変数の名前、変数を定義する式、現在の値および式の説明を表します。
  3. Nameに、ReynoldsNumberと入力します。
  4. Expressionに、1000000と入力します。
  5. Descriptionには、このシミュレーションの場合、Target Reynolds numberと入力します。
  6. 下の表に示されている残りの変数に対して、このプロセスを繰り返します。
    名前 Expression 説明
    ReynoldsNumber 1000000 Target Reynolds number for the simulation
    rho 1.225 Density of air
    mu 1.781e-5 Molecular viscosity of air
    chord 1.0 Airfoil chord
    alpha 5.0 Angle of attack (degrees)
    windSpeed :=ReynoldsNumber*mu/(rho*chord) Velocity of air (m/s)
    xVelocity :=windSpeed*cos(alpha*deg) X component of velocity
    yVelocity :=windSpeed*sin(alpha*deg) Y component of velocity
    turbIntensityPercent 0.025 Turbulence intensity percentage
    viscosityRatio 0.03 Viscosity ratio (turbulent viscosity / molecular viscosity)
    globalMeshSize :=200*chord Global maximum element size
    surfaceMeshSize :=.02*chord Maximum surface element size
    firstLayerHeight 1.2e-5 Boundary layer first layer height
    stretchRatio 1.2 Boundary layer element growth rate
    totalLayerHeight 0.004 Total height of boundary layer element stack
    sweepAngle 7.0 Sweep angle for boundary layer blends at sharp edges
    式が入力されると、Variable Managerは下の図のように表示されます。


    図 3.
  7. この時点ですべての変数と式が定義されているので、Closeを選択してVariable Managerを閉じることができます。

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

次の手順では、シミュレーション全体に適用されるパラメータを設定します。このタスクを簡略化するため、Data Tree ManagerでBASフィルタを使用します。BASフィルタでは、基本設定のみが表示されるよう、Data Tree内のオプションが限定されます。

このチュートリアルで設定する一般的な属性は、乱流、および定常状態時間解析のためのものです。

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


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


    図 5.
  3. Problem DescriptionをダブルクリックしてProblem Description詳細パネルを開きます。
  4. このケースでは、TitleとしてNACA0012 Airfoilと入力します。
  5. このケースでは、Sub titleとしてFully turbulentと入力します。
  6. Analysis typeをSteady Stateに変更します。
  7. Turbulence equationをSSTに変更します。
    SSTモデルとK-Omegaモデルの両方で同じ入力セットが必要となるため、このチュートリアルの手順はK-Omegaモデルにも適用されます。SSTモデルの代わりにK-Omegaモデルを使用する場合は、このメニューから選択できます。


    図 6.

解法パラメータの設定

次の手順では、非定常解析中に進行するAcuSolveの挙動を制御するパラメータを設定します。

  1. Auto Solution StrategyをダブルクリックしてAuto Solution Strategy詳細パネルを開きます。
  2. Relaxation factorに0.4と入力します。
    この値は解の収束を改善するために使用されます。通常は、0.2から0.4までの値であれば、求解のスムーズな進行の実現と、収束に達するために必要な計算時間の増加とのバランスをうまくとることができます。緩和係数が大きくなると、AcuSolveで定常状態解を得るまでにかかる時間ステップが多くなります。大きな緩和係数は、非常に複雑な用途で収束を達成するために必要な場合があります。


    図 7.

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

次の手順では、Variable Managerで作成した式を使用して、事前定義済みの空気の材料プロパティを変更します。

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


    図 8.
  2. Data TreeAirをダブルクリックしてAir詳細パネルを開きます。
  3. Densityタブをクリックして、Density value欄に:=rhoと入力します。
    これにより密度が、Variable Managerで入力した値と等しい値に設定されます。
  4. Viscosityタブをクリックして、Viscosity欄に:=muと入力します。
    これにより粘性が、Variable Managerで入力した値と等しい値に設定されます。
  5. データベースを保存して設定のバックアップを作成します。これは、次のいずれかの方法で実行できます。
    • Fileメニューをクリックして、Saveをクリックします。
    • ツールバーの をクリックします。
    • Ctrlキーを押しながらSを押します。
    注: AcuConsoleで加えられた変更は、直ちにデータベースファイル(.acs)に保存されます。保存操作を実行すると、データベースがバックアップファイルにコピーされます。今後の変更内容を利用することを希望しない場合は、このバックアップファイルを使用して、その保存済み状態からデータベースを再読み込みすることができます。

形状のインポートとモデルの定義

翼の形状のインポート

このチュートリアルの次のパートでは、形状をインポートします。この手順を完了するには、 NACA0012.x_t の場所がわかっている必要があります。このファイルには、ParasolidASCII形式で形状に関する情報が含まれています。
  1. File > Importをクリックします。
  2. NACA0012.x_tを含むディレクトリを参照します。
  3. ファイル名のフィルタをParasolid File (*.x_t *.xmt *X_T …)に変更します。
  4. NACA0012.x_tを選択し、OpenをクリックしてImport Geometryダイアログを開きます。


    図 9.

    このチュートリアルでは、Import Geometryダイアログのデフォルト値を使用して形状を読み込みます。AcuConsoleを使用していた場合は、自身が変更した可能性のある設定を手動で変更して、図に示すデフォルト値と一致させてください。デフォルト設定を使用した場合は、CADモデルのボリュームはデフォルトのボリュームグループに追加されます。CADモデルのサーフェスはデフォルトのサーフェスグループに追加されます。このチュートリアルでは後ほどグループを操作して、新しいグループの作成、流れパラメータの設定、形状コンポーネントの追加、およびメッシングパラメータの設定を行います。

  5. OKをクリックし、ダイアログを閉じます。
  6. 表示の回転やズームを行ってモデル全体を確認します。


    図 10.

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

ボリュームグループの作成とボリュームパラメータの適用

ボリュームグループは、ボリュームに関する情報を保存するためのコンテナです。これらの情報には、そのコンテナに関連付けられた形状ボリュームのリストや、材料モデルやメッシュサイジング情報などのパラメータが含まれます。

形状がAcuConsoleにインポートされたときに、すべてのボリュームはデフォルトのボリュームコンテナに配置されました。

次の手順では、デフォルトグループの名前をFluidに変更し、そのグループの材料を設定して、形状のボリュームをボリュームグループに追加します。

  1. Modelツリーを拡張表示します。
  2. Volumesを拡張表示します。
  3. ボリューム名の横にある をクリックして、デフォルトボリュームコンテナの表示のオン / オフを切り替えます。
    注: Surfacesが表示されている場合は、サーフェスとボリュームが重なっている可能性があるため、表示を切り替えても何も変わらないことがあります。
  4. デフォルトグループの名前を変更します。
    1. defaultを右クリックします。
    2. Renameをクリックします。
    3. Fluidと入力します。
  5. Data TreeFluidを拡張表示します。
  6. Element SetをダブルクリックしてElement Set詳細パネルを開きます。
  7. Material modelがAirに設定されていることを確認します。


    図 11.

サーフェスグループの作成とサーフェスパラメータの適用

サーフェスグループは、サーフェスに関する情報を保存するためのコンテナです。これらの情報には、そのコンテナに関連付けられた形状サーフェスのリストや、境界条件、サーフェス出力、メッシュサイジング情報などのパラメータが含まれます。

次の手順では、サーフェスグループを定義して、問題内の各グループに適切なパラメータを割り当てて、これらのグループにサーフェスを追加します。

遠方場境界条件の設定

次の手順では、遠方場境界のサーフェスグループを定義して、入口速度を設定し、形状内の対応するサーフェスをこのグループに追加します。

  1. Surfacesを右クリックしてNewをクリックすることで、新しいサーフェスグループを追加します。
  2. Surface 1の名前をFar Fieldに変更します。
  3. ツリー内でFar Fieldサーフェスを拡張表示します。
  4. ModelツリーFar Fieldを右クリックします。
  5. Add toを選択します。
  6. 表示ウィンドウでエッジサーフェス(下ではグレーでハイライト表示)を選択して、Doneを選択します。


    図 12.
  7. Far Fieldの下にあるSimple Boundary Conditionをダブルクリックして、Simple Boundary Condition詳細パネルを開きます。
  8. TypeをFar Fieldに変更します。
    Far field境界条件を使用する場合には、流速のベクトル方向を入力する必要があります。この方向に基づいて、AcuSolveは、各要素フェイスが入口または出口のどちらとして機能するのかを決定します。この方向ベクトルを、各要素の外向きの法線と組み合わせて使用することで、モデルのフェイスに適切な境界条件が適用されます。流れがモデルに入ってくるフェイスでは、速度および乱流の変数に関する境界条件が割り当てられます。流れがモデルから出ていくフェイスでは、圧力に関する要素境界条件(つまり流出条件)が割り当てられます。
    このシミュレーションの迎角の変更を容易にするために、以前に定義した変数を使用して、遠方場境界の入口速度ベクトルを設定します。次の入力を使用して、値を設定します。
  9. X Velocityに、:=xVelocityと入力します。
  10. Y Velocityに、:=yVelocityと入力します。

    SSTまたはk-omega乱流モデルを使用する場合、inflow/farfield境界のKinetic energyとEddy frequencyの値を設定する必要があります。AcuConsoleでは、これを実行する際のさまざまなオプションをサポートしています。turbulence input typeをDirectに設定して値を直接指定することも、あるいはTurbulence IntensityとLength Scaleの推定値、またはTurbulence IntensityとViscosity Ratioの推定値に基づいて、AcuConsoleで値を自動計算することもできます。これらのオプションに加え、ユーザーが簡単にこのタスクを実行できるように、AcuConsoleでは乱流の入力値を自動的に設定することもできます。この入力の自動選択は、Flow typeなどのパラメータに基づきます。汎用的なケースでは、値の計算にこの自動オプションを使用すると便利ですが、適切な入力値がある場合には、別のオプションを使用することをお勧めします。

    この場合、自動オプションを使用すると、AcuConsoleは、遠方場境界での運動エネルギーおよび渦頻度の値を計算できます。

  11. Turbulence input typeをAutoに設定します。
  12. Turbulence intensity typeをAutoに設定します。


    図 13.

    Percent turbulence intensityが0.5に設定されているのを確認できます。この値は、乱流モデルのFlow typeなどのパラメータをもとにAcuConsoleによって自動的に選択されます

残りの境界条件の設定

次の手順では、スリップおよび壁境界のサーフェスグループを定義します。

  1. Surfacesを右クリックしてNewをクリックすることで、新しいサーフェスグループを追加します。
  2. Surface 1の名前を+z slipに変更します。
  3. ツリー内で+z slipサーフェスを拡張表示します。
  4. +z slipを右クリックします。
  5. Add toを選択します。
  6. 表示ウィンドウでエッジサーフェス(下ではグレーでハイライト表示)を選択して、Doneを選択します。


    図 14.
  7. Simple Boundary Conditionをクリックします。
  8. TypeをSymmetryに設定します。
  9. Surfacesを右クリックしてNewをクリックすることで、新しいサーフェスグループをもう1つ追加します。
  10. Surface 1の名前を-z slipに変更します。
  11. ツリー内で-z slipサーフェスを拡張表示します。
  12. Modelツリー-z slipを右クリックします。
  13. Add toを選択します。
  14. 表示ウィンドウでエッジサーフェス(下ではグレーでハイライト表示)を選択して、Doneを選択します。


    図 15.
  15. Simple Boundary Conditionをクリックします。
  16. TypeをSymmetryに設定します。
  17. ツリー内で、defaultサーフェスの名前をairfoilに変更します。
  18. ツリー内でairfoilサーフェスを拡張表示します。
  19. Modelツリーでその他のサーフェスの表示をオフにし、残ったサーフェスにズームします。
  20. Modelツリーairfoilを右クリックします。
  21. Add toを選択します。
  22. 表示ウィンドウでエッジサーフェス(下図参照)を選択して、Doneを選択します。


    図 16.
  23. Simple Boundary Conditionをクリックします。
  24. TypeをWallに設定します。すべてデフォルト設定のままにします。

初期状態の定義

次の手順では、初期状態を定義します。

  1. Data Treeで、Nodal Initial Conditionsを、ダブルクリックします。
  2. X velocityを:=xVelocityに設定します。
  3. Y velocityを:=yVelocityに設定します。
    これにより、X velocityとY velocityがVariable Managerで指定した値と等しくなります。

SSTおよびK-Omega乱流モデルでは、Kinetic energyとEddy frequencyの初期値を入力する必要があります。これらの値の合理的な推定値がわかっている場合は、欄にそれらの値を直接入力できます。1つのオプションとして、入口境界で割り当てられたものと同じ値を使用する方法もあります。初期状態に適した推定値がない場合は、AcuSolveによって乱流変数の自動初期化を実行することも可能です。これらの値をゼロに設定したままにすると、AcuSolveがこれらの変数の自動初期化を開始します。

  1. 自動初期化を開始するには、Kinetic energyとEddy frequencyを0.0に設定します。


    図 17.

メッシュコントロールの割り当て

グローバルメッシュパラメータの設定

シミュレーションの定義が完了したので、メッシャーによって作成されるメッシュのサイズを定義するためのパラメータを追加する必要があります。

AcuConsole は、グローバル、ゾーンおよび形状という3つのレベルのメッシングコントロールをサポートしています。
  • グローバルメッシュコントロールは、モデル全体に適用され、モデルのどの形状コンポーネントにも関連付けられません。
  • ゾーンメッシュコントロールは、モデルの定義済み領域に適用されますが、どの特定の形状コンポーネントにも関連付けられません。
  • 形状メッシュコントロールは、特定の形状コンポーネントに適用されます。これらのコントロールは、ボリュームグループ、サーフェスグループ、またはエッジグループに適用できます。
  1. データツリーマネージャーMSHをクリックして、Data Tree内の設定をフィルタ処理して、メッシングに関するコントロールのみを表示します。
  2. GlobalData Tree項目をダブルクリックして拡張表示します。
  3. Global Mesh AttributesをダブルクリックしてGlobal Mesh Attributes詳細パネルを開きます。
  4. Mesh size typeをAbsoluteに変更します。
  5. Absolute mesh sizeを:=globalMeshSizeに設定します。
  6. Curvature refinement parametersをOffに設定します。
  7. Mesh growth rateを1.2に設定します。
    このオプションを設定すると、メッシャーは、別のサイズに遷移するときにメッシュがスムーズに成長するようにします。成長率1.2は、隣接要素の長さスケールの変化1.2に直接相当するのではなく、ゆるやかな拡大に相当します。メッシュの成長率は1~2の間の値で調整できます。値が1.0に近づくと遷移がスムーズになり、2.0に近づくと遷移が急激になります。値を1.0にすると、この設定が無効になり、デフォルトのメッシング挙動に戻ります。このオプションを使用すると、メッシュの生成に必要な時間と、メッシャーによって作成される節点 / 要素の合計数が大幅に増大するので注意が必要です。
  8. Maximum sweep angleを:=sweepAngleに設定します。
    この設定により、メッシャーは、境界層のメッシングプロセスで放射状のエッジブレンドを作成するときに、sweepAngleパラメータを使用して放射状の要素ライン間の最大角度を定義するように指示されます。


    図 18.

メッシュプロセスパラメータの設定

翼のサーフェス上に大きな範囲でメッシュサイズが作成されるため、要求された境界層コントロールにより生じた低品質の要素を解像する方法を境界層メッシャーに指示する必要があります。たとえば、翼サーフェス全体に渡って一定の高さまで成長するように境界層に要求しますが、局所的なサーフェス要素サイズには大きなばらつきがあります。このため、一部の領域では、幅に対して高さが非常に大きい境界層要素が発生します。メッシャーはこれを低品質の要素と見なし、何らかの方法で解像する必要があります。この解像方法として、次の2つのメカニズムが用意されています。
  • 境界層の積み重ねの層の数を局所的に減少させ、高品質の境界層要素を維持する。
  • 境界層の積み重ねの高さを局所的に減少させるが、層の総数は一定に保つ。このアプローチを使用して、積み重ねの合計高さが減少するよう各層の高さを一定の係数によってスケーリングし、品質の低い境界層要素の作成を回避します。
このシミュレーションでは、メッシャーが境界層の積み重ねの高さを局所的に減少させます。
  1. Global Treeの下で、Mesh Process Attributesをダブルクリックします。
  2. 詳細パネルで、Shrink mixed flagをOnに設定します。
  3. 2D Boundary layer adjacent height smoothing ratioを0.25に設定します。
    このパラメータは、品質の低い要素を解像するために層の高さを局所的に調整した後、局所的な境界層の高さを隣接する要素との間でいかに滑らかに変化させるかを制御します。このパラメータの値が低いと、高さの変化が長い距離に渡って滑らかになり、値が1.0に近づくと、高さの変化が急激になります。この設定には、2次元と3次元の境界層で別々の値が存在します。このアプリケーションでは、2Dメッシュを作成し、それを3つ目の方向に押し出して、ボリュームを作成します。このため、この場合は、2D設定によってメッシュの挙動が制御されます。


    図 19.

サーフェスメッシュパラメータの設定

翼上のサーフェスメッシュサイズは、翼の外周エッジのメッシュサイズセットとサーフェスに直接適用されるメッシュサイズの組み合わせによって制御されます。このチュートリアルでは、サーフェスメッシュの影響領域オプションも使用して、翼サーフェスから指定した距離に細分化されたメッシュを作成します。

  1. Model > Surfaces > Airfoilを拡張表示します。
  2. Surface Mesh Attributesオプションをアクティブにします。
  3. Mesh size typeとしてAbsoluteを選択します。
  4. Absolute mesh sizeとして:=surfaceMeshSizeと入力します。
    これにより、“surfaceMeshSize”変数で作成される値に対応する一定のメッシュサイズがサーフェスに割り当てられます。
  5. Region of influence parametersをOnに設定します。
  6. Influence typeをSimpleに設定します。
    influence typeがSimpleに設定された領域を使用すると、サーフェスに割り当てられたメッシュサイズはそのサーフェスから指定した距離だけ維持されます。サーフェスメッシュサイズが維持されるサーフェスからの距離は、“Influence distance”で定義します。サーフェスからの距離の関数としてメッシュサイズをスケーリングすることもできます。これは、influence size factorを設定することで可能です。この値を設定すると、ローカルメッシュサイズが、サーフェス上で指定されたサイズから細分化の距離の最も遠いスケール値まで線形補間されます。“影響領域”のメッシングによって使用されるサイズは、サーフェスメッシュ属性パラメータで定義した絶対メッシュサイズであることに注意してください。ここでは、曲率の細分化などによるメッシュサイズの局所的な変化は考慮されません。このため、翼サーフェスの現在の設定のみを使用して、影響領域のサイジングを進めます。翼の形状を解析するために必要なサーフェス上の要素サイズは、エッジメッシングで制御されます。
  7. Influence size factorを1.0に設定します。
  8. Influence distanceを:=chord*0.1に設定します。
  9. Boundary layer flagをOnに設定します。
  10. Boundary layer typeをFull Controlに設定します。
  11. Resolve欄で、Number of Layersを選択します。
    この設定で、境界層要素の最初の層高さ、合計層高さ、および成長率を指定します。これらの設定を満たすために必要な層の総数は、AcuConsoleによって計算されます。
  12. First element heightに:=firstLayerHeightと入力します。
  13. Total layer heightに:=totalLayerHeightと入力します。
  14. Growth rateに:=stretchRatioと入力します。
  15. Boundary layer blends flagをOnに設定します。
  16. Boundary layer element typeをTetrahedronに設定します。
  17. Maximum sweep angleを:=sweepAngleに設定します。
    これらの設定により、境界層メッシャーが、sweepAngle変数によって定義された最大角で放射状のエッジブレンドを作成します。


    図 20.

エッジメッシュパラメータの設定

翼のサーフェスに最適なメッシュを作成するには、翼の2.前縁と後縁付近を細かく細分化し、翼弦の中央部分では要素サイズを大きくする必要があります。このサーフェスメッシュサイズは、影響領域の細分化のためのボリュームに伝播するサイズとして提供されるように一定に設定されているので、ユーザーはエッジメッシュパラメータを使用して、翼のサーフェスに沿って節点の配置を制御します。これを実行するには、まず、翼の外周エッジを含むエッジグループを作成する必要があります。

  1. Edgesを右クリックしてNewをクリックすることで、新しいエッジを追加します。
  2. Edge 1の名前をPerimeter Edgesに変更します。
  3. 翼の2つの外周エッジを選択して、このグループに追加します。
    1. Perimeter Edgesを右クリックして、Add toをクリックします。
    2. 下に示すように、翼の2つの外周エッジを選択します。


      図 21.
    3. Doneを選択します。
  4. Edge Mesh Attributesをアクティブにして、ダブルクリックします。
  5. Mesh size typeをAbsolute Expressionに設定します。


    図 22.
  6. Absolute mesh size expressionボタンをクリックして、メッシュサイズの式を記述できるテキストエディタを開きます。
    この式はメッシャーによって評価され、エッジセット内のエッジ上の各位置で使用するローカルメッシュサイズが決定されます。
  7. 次の式を入力します。
    sizeMin  = 0.0025
    sizeMax = 0.1 
    
    xMin =(0.0)
    xMax =(1.0) 
    
    xCenter =((xMin+xMax)/2.0)
    dx = ((xMax-xMin)/2.0) 
    
    fac = ((dx - abs(x-xCenter) )/dx ) 
    
    power = (ln(sizeMax/sizeMin))
    expVal = sizeMin*exp(power*fac) 
    
    linVal = sizeMin+(sizeMax-sizeMin)*fac 
    
    value = expVal

    この式はサーフェスメッシュサイズの最小値と最大値(sizeMinとsizeMax)、および前縁と後縁の位置(xMinとxMax)を取り、前縁と後縁からの距離の関数として、サーフェスメッシュサイズの対数拡大を計算します。前縁と後縁のメッシュサイズはsizeMinに対応し、翼弦の中央位置のサイズはsizeMaxに対応します。



    図 23.
  8. Okをクリックして、このテキストエディタ領域を閉じ、式を受け入れます。

メッシュ押し出しパラメータの設定

翼のメッシングの設定の最後の手順は、メッシュ押し出し属性の作成です。この押し出しは、翼の全スパンに渡って1つの要素が作成されるように定義します。

  1. 新しいメッシュ押し出しを作成します。
    1. Mesh Extrusionsを右クリックし、Newを選択します。
    2. Mesh Extrusion 1を右クリックし、Renameを選択します。
    3. この名前をZ extrusionに変更します。
  2. Z extrusionをダブルクリックして、設定ダイアログを開きます。
    メッシュ押し出し属性では、2つのタイプの押し出しがサポートされています。1つ目のタイプはサーフェスです。このタイプを選択した場合、メッシャーへの入力は2つのサーフェスのセットになり、メッシュはそれらの間で押し出されます。作成されるメッシュは押し出されたボリュームメッシュです。サポートされる2つ目の押し出しタイプは、エッジ押し出しです。このタイプの押し出しを使用すると、2つのエッジが選択され、この2つのエッジの間に押し出されたサーフェスメッシュが作成されることになります。ここでは、Geometry typeをsurfaceに設定して、押し出されたボリュームメッシュを生成します。
  3. Geometry typeがsurfaceに設定されていることを確認します。
  4. Side 1に対して、ドロップダウンから、+z slipを選択します。
  5. Side 2に対して、ドロップダウンから、–z slipを選択します。
  6. Extrusion typeがNumber of layersに設定されていることを確認します。
  7. number of layersに1と入力します。
  8. Extrusion optionsでMixed elementsを選択して、翼スパン全体に渡って押し出された単一のプリズム要素の層を作成します。
  9. OKをクリックして、これらの設定を受け入れます。


    図 24.

メッシュの生成

次の手順では、問題の解を計算する際に使用されるメッシュを生成します。

  1. ツールバーの をクリックしてLaunch AcuMeshSimダイアログを開きます。
  2. デフォルト設定のままで、OKを選択します。

    メッシング時に、AcuTailウィンドウが開きます。メッシングの進行状況はこのウィンドウで報告されます。メッシングプロセスのサマリーで、メッシュが生成されたことが示されます。

  3. 翼のサーフェスの周囲のメッシュを調べます。
    エッジメッシュ属性に使用した式の結果として、翼の前縁と後縁での細分化に注目してください。翼サーフェスの周囲のメッシュの細分化にも注意してください。これは、影響領域のメッシングによるものです。
  4. 翼の後縁にズームして、boundary layer blends flagをオンに設定した影響を確認します。翼の後縁にある放射状のエッジブレンドが明確な証拠です。


    図 25.

解の計算と結果の確認

AcuSolveの実行と.logファイルの検証

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

  1. ツールバーでをクリックしてLaunch AcuSolveダイアログを開きます。
  2. お使いのシステムに4つ以上のプロセッサがある場合は、Number of processorsに4と入力します。
    複数のプロセッサを使用すると、解析時間を短縮できます。
  3. RestartラジオボタンがOffに設定されていることを確認します。
  4. その他すべてのデフォルト設定を受け入れます。
    これらの設定に基づき、AcuConsoleAcuSolveの入力ファイルを生成してから、ソルバーを起動します。AcuSolve は、4個のプロセッサ上で実行し、この問題の非定常解を計算します。
  5. Okを選択して解析プロセスを開始します。

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

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

  6. 解析が完了したら、上方向にスクロールしてファイルの先頭まで戻り、乱流場の値の初期化に関するメッセージを見つけます。
    これは、節点の初期状態が0に設定されているためです。初期化された変数の最小値、最大値、平均値がレポートされていることに注意してください。


    図 26.
  7. 時間ステップを1つレビューします。
    1つ注意すべき点は、渦頻度と運動エネルギーが各時間ステップ内で3回解析されていることです。これは、SSTおよびk-omega乱流モデルを使用する場合に、最も効率的に収束解を取得する方法です。


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

AcuProbeによる解析のモニター

AcuSolveの実行中は、AcuProbeを使用して運動エネルギーを監視できます。

  1. ツールバーの アイコンをクリックして、AcuProbeを開きます。
  2. Residual Ratioを右クリックしてPlot Noneを選択することで、プロットを消去します。
  3. Residual Ratio > Allを拡張表示します。
  4. kinetic_energyを右クリックし、Plotを選択します。


    図 28.
  5. kinetic_energyを右クリックし、Don’t Plotを選択してプロットを消去します。
  6. Final を右クリックし、Plot Allを選択します。


    図 29.
  7. AcuProbeダイアログを閉じます。

AcuFieldViewの起動

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

渦周期の平方根の表示

次の手順では、境界サーフェスを作成して、渦周期の平方根と呼ばれる新しい変数のコンターを表示します。SSTおよびk-omega乱流モデルを解析する場合、AcuSolveでは出力に新しい3つの変数、kinetic_energyeddy_frequency 、およびsqrt_eddy_per 1 ω )を導入します。sqrt_eddy_per変数は、乱流の時間スケールを可視化するために役立ちます。eddy_frequency変数では値の範囲が非常に大きいため、多くの場合、sqrt_eddy_perを可視化する方が容易になります。

これらの手順は、AcuFieldViewのビューの操作を習得していることを前提に提供されています。AcuFieldViewの基本操作に不慣れな場合には、AcuFieldViewにおけるモデルビューの操作をご参照ください。

  1. サイドツールバーの をクリックして、Boundary Surfaceダイアログを開きます。
    注: このダイアログはすでに開かれている場合があります。この手順では、このダイアログに焦点を当てます。
  2. Scalar Functionの下で、Selectをクリックします。
  3. sqrt_eddy_periodを選択して、さらにCalculateを選択します。
    注: sqrt_eddy_periodを表示するには、下へスクロールする必要がある場合もあります。これは新しい変数で、オメガの平方根を上回るものを表します。これは、渦頻度と比べて、プロットに際して有界性の高い変数であるため、追加されています。


    図 30.
  4. 翼の周辺のsqrt_eddy_periodを表示するには、翼にズームします。


    図 31.

流れ係数計算のためのポスト処理

AcuSolveは、ソルバーを使用して解析する問題のプリ処理およびポスト処理を容易にするさまざまなユーティリティスクリプトとともに配布されています。ここでは、AcuLiftDragとAcuGetCpCfの2つのスクリプトとそれらの使用方法について説明します。これら2つのスクリプトは、このチュートリアルで解析するような空力シミュレーションに特化しています。

AcuLiftDragの実行

AcuLiftDragは、翼の揚力係数および抗力係数の計算に使用されるユーティリティスクリプトです。このスクリプトを実行するには、入力として次のオプションを指定する必要があります。

オプション名 説明
-pb 問題名
-dir 作業ディレクトリ。デフォルトの作業ディレクトリはACUSIM.DIRです。問題の解析ファイルはすべてここに格納されます。
-run 実行番号(0の場合、最後の番号を使用)
-osis 力の計算に使用するサーフェスのコンマ区切りリスト
-angle_of_attack / aoa 翼の迎角(度)
-reference_velocity / ref_vel 基準速度
-wing_chord / chord 翼弦
-wing_span / span 翼のスパン
-density / rho 空気密度
-drag_direction / drag_dir 迎角ゼロでの抗力方向: x、y、z。デフォルトの抗力方向はxです。
-lift_direction / lift_dir 迎角での揚力方向: x、y、z。デフォルトの揚力方向はyです。
-x_axis_vars / x_vars エクスポートされるデータのx軸変数: step、time、both。デフォルトはstepです。

問題の解析の項では、シミュレーションは翼のスパン方向に押し出される要素の単一層のみを含めることにより、2Dとして実行されると説明されています。そのように問題を解析する場合は、翼のスパンは押し出し方向の領域の厚さに等しくなるように設定する必要があります。3Dの問題を解析する場合は、実際の翼のスパンを使用する必要があります。

この位置についてAcuLiftDragスクリプトを実行するには、次の手順に従います:

  1. Start > All Programs > Altair HyperWorks <version> > AcuSolve > AcuSolve Cmd Promptの順にクリックして、StartメニューからAcuSolve コマンドプロンプトを起動します。
  2. ‘cd’コマンドを使用して、ディレクトリを現在の問題のディレクトリに変更します。
  3. プロンプトに以下のコマンドを入力します:
    acuLiftDrag -osis airfoil -aoa 5 -ref_vel 14.54 -chord 1 -rho 1.225 
    -span 50  
    
    コマンドの出力は下の画像のようになります:


    図 32.

    C_lの値は揚力係数に対応し、C_dの値は抗力係数に対応します。最終的なキーワードは、シミュレーションの最後の時間ステップでのそれぞれの係数値を表します。残りの値は、シミュレーションのすべての時間ステップにおけるこれらの係数の基本統計を表します。これらの統計は、シミュレーションが過渡的である場合、より有意義なものとなります。

    このスクリプトは、問題のディレクトリにTurbulent_Airfoil_SST.liftDrag.datというファイルも作成します。このファイルには、特定の表形式で、可能なすべての時間ステップの揚力および抗力データが含まれています。1列目が時間ステップ、2列目が揚力係数、3列目が抗力係数です。

AcuGetCpCfの実行

AcuGetCpCfはもう1つのユーティリティスクリプトで、翼の圧力係数(Cp)の計算に使用されます。このスクリプトを実行するには、入力として次のオプションを指定する必要があります。

オプション名 説明
-pb 問題名
-dir 作業ディレクトリ。デフォルトの作業ディレクトリはACUSIM.DIRです。問題の解析ファイルはすべてここに格納されます。
-run 実行番号(0の場合、最後の番号を使用)
-ts 抽出する時間ステップ(0の場合、最後の時間ステップを使用)
-osis 力の計算に使用するサーフェスのコンマ区切りリスト
-type 生成するデータのタイプ: cp、cf
-point_type カーブのポイントの生成に使用する方法: file、auto
-points_file / pts ポイントを読み出すファイルのコンマ区切りリスト(type=fileの場合に使用)
-radial_locations / rad_locs 放射状の位置のリスト
-z_direction / z_dir iso-cutの方向: x、y、z。デフォルトはzです。
-reference_pressure / ref_pres 基準圧力
-density / rho 空気密度
-reference_velocity / ref_vel 基準速度
-wing_chord / chord 翼弦
-normalize_chord / nc ローカルな翼弦を1に正規化。デフォルトはTrueです。
-chord_scale_fac / csf 翼弦のスケールファクター
-cp_scale_fac / cpsf c_p / c_fスケールファクター
-pressure_type / ptype 使用する圧力場: standard、time_ave、running_ave。デフォルトはstandardです。

この問題に対してAcuGetCpCfスクリプトを実行するには、次の手順に従います:

  1. Start > All Programs > Altair HyperWorks <version> > AcuSolve > AcuSolve Cmd Promptの順にクリックして、StartメニューからAcuSolve コマンドプロンプトを起動します。
  2. ‘cd’コマンドを使用して、ディレクトリを現在の問題のディレクトリに変更します。
  3. プロンプトに以下のコマンドを入力します:
    acuGetCpCf -osis airfoil -type cp -ref_vel 14.54 -rho 
    1.225 -no_nc

    コマンドの出力は下の画像のようになります:



    図 33.

    このスクリプトは、圧力係数の最小値と最大値を出力します。このスクリプトは、問題のディレクトリにcp.1.datというファイルも作成します。このファイルには、翼弦に沿った圧力係数データが含まれます。1列目は翼弦に沿ったx座標、2列目は圧力係数です。データのプロットには、外部のプロットユーティリティを使用できます。プロット結果を以下に示します。



    図 34.

迎角の変更と解の計算

このデータベースは変数と式を使用して設定されているので、別の迎角を使用してシミュレーションを簡単に再実行できます。このためには、Variable Managerを開き、“alpha”を0.0に設定します。初期および境界条件用に定義されたxVelocityおよびyVelocity変数はこのパラメータの関数なので、データベースは新しい設定を反映するように自動的に更新されます。ユーザーは単純に入力を再度記述して、ソルバーを実行し、異なる迎角を取得できます。