RadiossAcuSolveとの通信

RadiossAcuSolveは、同じネットワークドメインにある、異種プラットフォームやリモートプラットフォーム上で実行できます。RadiossAcuSolveとの通信は、ソケットを介して行われます。RadiossAcuSolveの間の共同シミュレーションを行うためには、解析ソフトウエアの1つが通信プロセスを初期化する必要があり、もう1つのソフトウエアは初期化された通信プロセスに接続する必要があります。

Radiossでは、ソケットポート番号(PORT)は、/IMPL/DYNA/FSIデータの3番目の項目で指定されます。デフォルトのポート番号は10000です。同じポート番号が、AcuSolve.inpファイルのEXTERNAL_CODEデータで指定される必要があります。Radiossが実行されるマシンがlinux_machという名前の場合、EXTERNAL_CODEは以下のようになります:
EXTERNAL_CODE {
communication	= socket
socket_initiate	= no
socket_host	= "linux_mach"
socket_port	= 10000
}

AcuSolveRadiossは個別に開始されます。AcuSolveRadiossがソケット接続を初期化するのを待ちます。AcuSolveが待つ時間は/IMPL/DYNA/FSI データのWAITパラメータで決められます。デフォルトの値は3600秒です。

時間ステップのループが開始される前に、インターフェースに関する基本情報が2つのコード間で交換される必要があります。最初に、インターフェースストラテジーを制御するパラメータの数が、両方のコードに設定される必要があります。次に、インターフェースの物理パラメータを定義する必要があります。典型的な例では、AcuSolveRadiossの両方が同じ時間ステップで開始します。しかし、(流れの発達を得るために)AcuSolveが最初に開始される必要がある場合、/IMPL/DYNA/FSIデータのINITデータで、連成解析を開始するAcuSolveの初期時間ステップを設定することができます。

時間ステップとデータ交換

RadiossAcuSolveはどちらも同じ時間ステップサイズを使用する必要があり、時間ステップの合計数が同じである必要があります。また、時間ステップのサイズは、RadiossAcuSolveの両方で一定のままである必要があります。例えば、0.001秒で 1000時間ステップに対して、AcuSolveRadiossのデータは:
AUTO_SOLUTION_STRATEGY {
initial_time_increment	= 0.001
max_time_steps	= 1000
min_stagger_iterations	= 1
max_stagger_iterations	= 20
}
および
/RUN/wing/1
1.0
/IMPL/DTINI
0.001
/IMPL/DT/2
        12  0.0  120  1.0   1.0

Radioss入力データで/IMPL/DT/2の項目4および5が時間ステップの係数を指定します。Radiossの時間ステップが一定を保つように1.0が設定される必要があります。

それぞれの時間ステップで、RadiossAcuSolveの間で、ある収束判定基準に達するまで力と変位が交換されます。収束に至ると、解析は次のタイムステップで続行されます。これらの交換はAcuSolveで "スタッガー"と呼ばれます。スタッガー(交換)の最小数は両方の入力データで 1に設定されるべきです。これは、 AcuSolveではAUTO_SOLUTION_STRATEGYデータのmin_stagger_iterationsパラメータで指定され、Radioss/IMPL/DYNA/FSI データではMINXデータで指定されます。

交換の最大数は力と変位の収束判定基準と最大交換数のハードリミットの組み合わせでコントロールされます。交換の最大数はAcuSolveではAUTO_SOLUTION_STRATEGYデータのmax_stagger_iterationsパラメータで設定され、Radiossでは/IMPL/DYNA/FSIデータのMAXXデータで設定されます。

力と変位の収束判定基準は安定で精度の良い結果を得るのに必要な交換の数を減らすために用いられます。これにより正確な結果を保証する実行時間を大きく減らすことが可能になります。力と変位の収束判定基準はRadioss/IMPL/DYNA/FSIデータのFTOLDTOLデータで指定されます。これらは力と変位ベクトルの L2ノルムの判定基準です。これらの判定基準を上げた場合、計算時間は減少しますが、解の精度が低下する可能性があります。

典型的な場合では、力と変位だけが交換される必要があります。特別なケースでは、ビームの回転のように、ユーザーがモーメントと回転についても交換を要求することができます。これは、Radioss/IMPL/DYNA/FSIデータのDATAパラメータを2に設定することでできます。

データ交換の検証

RadiossAcuSolveの間で正しいデータが交換されているかを検証するために、Radioss/IMPL/DYNA/FSIデータでMSGパラメーターを非ゼロの値に設定することができます。より大きな値で、より多くの量の情報がRadioss .outファイルに検証のため書かれます。このデータは通信制御パラメータだけでなく交換される力とモーメントの実際の値も含まれます。

典型的な場合では、RadiossAcuSolveで流体 - 構造相互作用解析を実行するのに減衰サーフェスの定義のみ必要です。減衰サーフェスのIDが10の場合、入力データは次のようになります:
/IMPL/DYNA/FSI
 0 10 0 0 0 0 0 0 0 0
 0 0 0 0

このケースでは、他のFSIパラメータ全てはデフォルト値に設定されます。Radiossでは0はデフォルト値を意味し、(デフォルト値が実際0でない限り)明確に0を与えていない点に注意してください。

計算時間を減少させるために、交換の数の上限を設定すると共に、力と変位の収束判定基準により高い値を設定することもできます。例えば、FSIで交換の最大数に5を設定し、力と変位の収束判定基準に0.010.005をそれぞれ設定することもできます:
/IMPL/DYNA/FSI
0 10 0 0 5 0 0 0 0 0
0.01 0.005 0 0
ビーム要素にタグが付いた問題で、モーメントと回転の交換をするケースでは、その入力データは以下のようになります:
/IMPL/DYNA/FSI
20 0 0 0 0 1 1 0 0 0\
0 0 0 0

ここで、20は全てのビーム要素を含む要素セットです。ビーム要素タグはそのビームプロパティIDに基づきます。

Radiossの構造FSIデータ

構造解析のタイプは陰解法銅解析で一般化Newmark法を用いて解かれます。したがって、Radioss Engineキーワードは:
/IMPL/DYNA/2
提案されるRadioss時間ステップでの収束判定基準は、エネルギーと力に対して0.001で変位は0.01で、陰解法コントロールデータで設定されます:
/IMPL/NONLIN/1
123 0.001 0.001 0.01
時間ステップは一定でなければならず、時間ステップコントロール法は時間ステップを変更せずに多くの反復を行うことができることから時間ステップの係数は1.0に設定する必要があります。時間ステップコントロール法2のデータは、以下のようになります:
/IMPL/DT/2
 12 0.0 120 1.0 1.0
発散の許容反復回数も時間ステップが調整されないように増加される必要があります。これは発散の基準を5にすることで次のように設定できます:
/IMPL/DIVERG/5
最後に、流体から作用された力と結果の変位をRadioss結果のアニメーションファイルに書き出すため、以下を用います:
/ANIM/VECT/FEXT
/ANIM/VECT/DISP

モデルの場所

RadiossモデルとAcuSolveモデルは、同じ場所に存在する必要があります。言葉を変えると、流体境界メッシュと対応する構造減衰サーフェスは相互に物理境界として一致している必要があります。これらのメッシュの間のギャップは、小さくなければなりません。交換サーフェスの一致をAcuSolveで検証するため、.Logファイルの以下に示す構造メッシュ情報を確認してください。位置、サイズ、および方向の不一致の特定に役立つよう、減衰サーフェス要素の数および減衰サーフェスの最小座標と最大座標に加え、一致する境界ボックスと面積も確認します:
acuSolve: No. external code nodes = 15050
acuSolve: No. external code tri3s = 0
acuSolve: No. external code quad4s = 15000
acuSolve: Min/Max x-coord = -3.812500e-02 3.812500e-02
acuSolve: Min/Max y-coord = -3.805000e-02 3.805000e-02
acuSolve: Min/Max z-coord = 0.000000e+00 3.812500e+00
acuSolve: Total surface area = 9.126732e-01
acuSolve: No. fluid damp surfaces = 5637
acuSolve: Min/Max x-coord = -3.812499e-02 3.812500e-02
acuSolve: Min/Max y-coord = -3.812494e-02 3.812498e-02
acuSolve: Min/Max z-coord = 0.000000e+00 3.812500e+00
acuSolve: Total fluid surface area = 9.128247e-01
それぞれの時間ステップで、流体の荷重により減衰サーフェスは変形します。同時に、流体メッシュは新しい減衰サーフェスに一致するように移動します。それぞれの時間ステップでの平均と最大ギャップは次のように示されます:
acuSolve: Ave distance = 2.842759e-05
acuSolve: Max distance = 1.182390e-04

意味のある解のためにはギャップは小さくする必要があります。

連成シミュレーションのポストプロセス

連成シミュレーションのポストプロセスのためのいくつかのオプションがあります。
  • HyperViewを用いた構造結果とインターフェースの応答、更にHyperViewのようなAcuSolveに適合するポストプロセッサーを用いて流体の解とインターフェースの応答のポスト処理を行います。
  • 構造と流体の解を統合してポスト処理するにはサードパーティのソフトウエアを用います。

数量のスケーリング

AcuSolveRadiossから読み込まれる力およびモーメントに倍率を与えることができます。高い慣性効果を伴う流体-構造相互作用シミュレーションを開始する場合には、スケーリングフィールドが役立つ可能性があります。EXTERNAL_CODEコマンドで乗数関数を指定します。
MULTIPLIER_FUNCTION("ramp" ) {
type	= piecewise_linear
curve_fit_values	= { 1, 0.0 ; 10 , 1 }
curve_fit_variable	= time_step
  }
 
    EXTERNAL_CODE {
     …
multiplier_function	= "ramp"
…
  }

ソルバーの並列計算

AcuSolveRadiossは、分散メモリクラスタ上で並列で実行できます。

プラットフォームのサポート

AcuSolveは、Windows (64-bit)とLinux (64-bit)で実行できます。

制限事項

  • dampサーフェスがビーム要素を含む場合、他の要素は減衰サーフェス定義に用いることはできません。つまり、ビーム要素を他の要素と組み合わせて減衰サーフェスを定義することはできません。
  • 2次のテトラ要素と修正テトラ要素はサポートされていません。
  • 2つのソルバーの間における時間ステップは、一定および固定された時間増分である必要があります。
  • 現時点で熱解析はサポートされていません。