
新しいアプリケーションビルダーで作成された COMSOL アプリケーションにより, パラメーター化された CAD モデルに基づく高度なシミュレーションがこれまで以上に利用しやすくなります. COMSOL アプリケーションでは, パラメーター化されたモデルだけでなく, 可変数のインペラーブレードや可変数のインラを備えたミキサーなど, まったく異なるジオメトリ構成にも簡単にアクセスできます. アプリケーション開発者がこれを簡単に行えるように, 累積選択とジオメトリパーツを利用できるようにしました. これらのツールがどのように機能するかを確認してください.
累積選択
パラメーター化されたジオメトリモデルに基づくシミュレーションアプリを作成する場合, アプリケーションのユーザーが新しいパラメーター値を入力するたびに, すべての材料, 物理特性, メッシュ設定を手動で更新する必要はおそらくないでしょう. 代わりに, これらの操作をバックグラウンドで自動的に更新するツールが必要です. 累積選択は, ドメイン, 境界, エッジ, ポイントなどのジオメトリエンティティをグループ化するために使用されます.
たとえば, パラメーター値が変更されると, 境界を分割するような形でジオメトリモデルが変化することがあります. かつては単一の境界だったものが, 2つ以上の部分に分割されることがあります. アプリケーションは, これらの新しく作成された境界に適用する境界条件を知る必要があります. 境界条件が累積選択に関連付けられている場合, これは, 新しく作成された境界に適用する新しい境界条件をアプリケーションに指示します.
累積選択は, 材料特性, その他の物理設定 (ソース項など), メッシュ設定, および結果の更新にも使用されます. たとえば, 異なるジオメトリ操作で作成された異なるドメインは, ドメインの材料に従ってジオメトリシーケンスに集めることができます. これにより, 同じ材料を持つすべてのドメインが単一の累積選択で使用可能になります. パラメーター化中にドメインがジオメトリシーケンスに追加または削除されると, そのような選択への材料の割り当てが自動的に更新されます.
COMSOL Multiphysics シミュレーションソフトウェアのモデルツリーのジオメトリノードには, 順序付けられた一連のジオメトリ操作が含まれています. これらには, ブロックまたは球体の作成, ブール和, 交差, またはフィレットやロフトなどのより高度な操作が含まれます. この操作のシーケンスは, ジオメトリシーケンスと呼ばれます.
累積選択は, 純粋なジオメトリモデリングタスクのジオメトリシーケンス内でも使用できます. たとえば, 累積選択では, ブール差分操作で追加または減算するオブジェクトを集めることができます (下の図を参照). 減算するオブジェクトの数が変わった場合でも, 差分操作は自動的に更新されます.
編集者注: 次のセクションは, このブログが最初に公開された後にリリースされた COMSOL Multiphysics バージョン 5.1 と整合するように, 2015年7月1日に更新されました.
ジオメトリパーツ
ジオメトリパーツは, カスタム複合ジオメトリオブジェクトとして表示できます. ブロックや球などのプリミティブオブジェクトと同じように, ジオメトリシーケンスで使用できます.
ジオメトリパーツはモデルに対してグローバルに定義され, パーツインスタンスとして任意のモデルコンポーネントのジオメトリシーケンスに追加できます. ユーザーは, パーツライブラリから, またはモデルで使用可能なジオメトリパーツの独自のリストから, 目的のパーツを選択できます.
ジオメトリパーツは, モデルパラメーターを入力として受け取ることができます. 出力は, 1つまたは複数のジオメトリオブジェクトと, ジオメトリ操作および材料, 物理, メッシュ, および結果設定によって入力選択として使用できる, 1つまたは複数の選択です. ジオメトリパーツは, パーツを構築するジオメトリシーケンス内で累積選択を内部的に使用できますが, パーツインスタンスが追加されたときに, 出力選択を使用してメインジオメトリシーケンスの累積選択に貢献することもできます.
累積選択とジオメトリパーツは, パラメーター化されたジオメトリを使用するアプリケーションを作成する機能において重要な概念です. 実際, ジオメトリパーツと累積選択はどちらも, アプリケーションビルダーとアプリの作成を念頭に置いて構築されています.
累積選択の使用
モデルツリーのジオメトリブランチに表示されるジオメトリシーケンスは, 円柱やブロックなどのプリミティブオブジェクトと, ブール演算の結果のオブジェクトや断面プロファイルのスイープなどの複合オブジェクトに基づいています. 複合オブジェクトを作成する操作では, 入力として選択が必要になる場合があります.
たとえば, 2つのオブジェクトグループ間の差分操作では, 問題の2つのオブジェクトグループを選択リストで指定する必要があります. 下の図では, タンク選択にパーツインスタンス 1 (pi1) によって作成された1つのオブジェクトが含まれています. この場合, タンクからインペラーシャフトとさまざまなインペラーを減算して, タンク内の流体ドメインに対応する残りのオブジェクトを作成します. 3つのインペラー (imp1 から imp3) と1つのシャフト (pi2) が, インペラー入力選択のオブジェクトです.
ブール演算, 差には, 少なくとも2つのオブジェクトが必要です. 1つは加算用, もう1つは減算用です. また, 選択と累積選択を入力として使用して, オブジェクトのリストを作成することもできます.
累積選択を使用すると, このプロセスを整理し, 以前の操作で作成された入力選択を必要とするジオメトリ操作を自動的に更新できます.
Rushton インペラーを作成するジオメトリシーケンスで累積選択の使用を例示できます. Rushton インペラーは, インペラーシャフトに取り付けることができるインペラーハブを備えたディスクに取り付けられた多数のインペラーブレードで構成されます.
Rushton インペラーのジオメトリ.
ジオメトリシーケンスの最初の手順は, ディスクの直径を制御するパラメーターを使用してインペラーディスクを作成することです. このステップでは, ワークプレーンが使用され, このワークプレーンに対して一連のジオメトリ操作が定義されます. 2番目のステップでは, 最初のインペラーブレードを作成します. これは, ディスクに対して垂直に配置されたワークプレーンに作成されます. 3番目のステップでは, 回転操作を使用してブレードを回転させ, 必要な数のブレードを作成します.
最初のステップでは, 1でジオメトリ操作を行い, インペラーディスクと, “impeller_disk” 選択を作成します. 2番目のステップでは, インペラーブレードと, 次の図に示すように “impeller_blades” と名付けることができる累積選択を作成します.
“impeller_blades” 選択は, 回転操作の入力として使用されます. これにより, インペラーブレードの作成が自動化され, グラフィックスウィンドウからの手動入力は不要になります.
Rushton タービンの他のインペラーブレードを作成する回転操作の出力も, “impeller_blades” 累積選択に寄与できます. ブレードの数のパラメーターを更新することで, ブレードの数を指定できます. 次に, 360° をブレードの数で割ることで, 回転角度 “angle_ib” が作成されます. 次に, 選択 “impeller_blades” が自動的に更新されます. 下の図は, 対応する回転操作の設定ウィンドウを示しています.
累積選択により, ジオメトリシーケンスが確定すると, 材料, メッシュ, 物理特性, および結果設定の入力選択を自動的に更新することもできます.
インペラーディスクとインペラーブレードに同じ材料または同じ境界条件を設定するとします. 回転操作の出力選択とディスクを純粋な選択操作で使用できます. これにより, インペラーディスクとインペラーブレードが同じ累積選択で使用できるようになります. この目的のために, 選択 “impeller_disk” と “impeller_blades” を結合する結合選択を追加できます.
結合選択操作はジオメトリ結合操作とは異なります. 単一の選択でブレードとディスクを参照できます.
ジオメトリシーケンスが確定すると, この選択を入力として使用する材料, 物理特性, メッシュ, および結果設定に対して, “rotating_internal_walls” 選択が自動的に更新されます.
たとえば, 回転インペラーを備えたミキサー内の乱流をモデル化する場合, ジオメトリシーケンスで作成された “rotating_internal_walls” 選択によって, 回転する内壁境界条件への入力選択が自動的に更新されます. これは, インペラーブレードの数と寸法のさまざまな選択肢に対して実行できます.
ジオメトリパーツの使用
インペラーが撹拌する流体の種類に応じて, インペラーの種類を完全に変更できるようにしたいと考えるのは当然です. ミキサーアプリケーションを構築する場合, ユーザーが特定のプロセスや条件に合わせて選択できるさまざまなインペラー設計と寸法を提供したいと考えます. さらに, インペラーシャフトの長さに沿って複数のインペラーを作成する機能も必要になる場合があります. これを簡単にするために, ジオメトリパーツを使用できます. ジオメトリパーツを使用すると, ジオメトリシーケンスからアクセスできるジオメトリオブジェクトライブラリを構築できます.
ある意味では, ジオメトリパーツは, ブロックやシリンダーなどのプリミティブオブジェクトと同様に使用できる, 独自に作成したカスタムオブジェクトのように機能します. ただし, 入力ディメンションと出力ジオメトリオブジェクトに加えて, ジオメトリパーツは選択範囲も出力できます.
ジオメトリパーツは, グローバルノードで作成されるか, パーツライブラリからインポートされます. グローバルノードにジオメトリパーツを配置する理由は, 異なるコンポーネントの複数のジオメトリシーケンスから呼び出すことができるためです. 下の図は, 11種類のインペラー, 1種類のインペラーシャフト, および3種類のタンクの15種類のジオメトリパーツを示しています. Rushton インペラー以外のすべてのパーツは, ミキサーモジュールパーツライブラリからダウンロードされています. Rushton インペラーは, グローバル定義のパーツブランチで直接作成されます. これは, ダウンロードしたパーツを, 特定の1つのモデルで使用するために作成されたが, 同じモデルで複数回使用されるパーツと組み合わせることができることを示しています.
Rushton インペラーを定義するジオメトリパーツは, ジオメトリオブジェクトのパラメーター化を制御するいくつかの入力パラメーターを受け取ることができます. さらに, ジオメトリパーツには, パーツのジオメトリシーケンスでのみ定義されるいくつかのローカルパラメーターも含めることができます. たとえば, インペラーブレードの数は, “n_ib” で示される入力パラメーターとして受け取ります. ブレード間の角度 (360° をブレードの数で割って得られる) は, 角度を計算するにはブレードの数を受け取るだけで十分なため, ローカルパラメーターです.
パーツインスタンスの設定には, 選択したパーツ (この例では Rushton Impeller パーツ) への参照が含まれています (下の図を参照). 設定ウィンドウの入力パラメーター式は, モデルツリーのグローバルパラメーターノードのグローバルパラメーターを参照するようになりました. この場合, これらの入力パラメーターのほとんどは, ジオメトリパーツの引数と似た名前を持ち, “instance” を表す “_i” が追加されています. ただし, 入力パラメーター式には, 任意のパラメーター名または番号を入力として持つことができることに注意してください.
パーツで作成された選択は, メインジオメトリシーケンスのパーツ インスタンスの累積選択にマップできます. たとえば, “impeller_blades” 選択は, メインジオメトリシーケンスで定義された “rotating_internal_wall” 累積選択に寄与します. “impeller_hub” 選択は, メインジオメトリシーケンスの “rotating_wall” 選択に寄与します. メインジオメトリシーケンスで作成された累積選択は, その後, 結合または差分ブール演算などの他のジオメトリ操作の入力として使用できます. また, 材料, フィジックス, メッシュ, および結果の設定でも使用できます.
また, パーツインスタンスでは, 作成されたジオメトリオブジェクトの配置と方向も指定できます. 同じパーツを参照する2つの異なるパーツインスタンスは, このようにしてメインジオメトリシーケンス内で異なる位置と方向を取得できます.
下の図は, 7つの異なるインペラータイプが1つのインペラーシャフトに沿って配置されているという, あまり一般的ではないケースを示しています. この少し変わった例は, パーツからの出力選択とメインジオメトリシーケンス内の累積選択によって, 構成がまったく異なるジオメトリエンティティをグループ化できることを示しています. 累積選択によって, 材料, 物理特性, メッシュ, および結果の設定が自動的に更新されます.
たとえば, 累積選択 “rotating_internal_wall” は, 乱流の回転内壁境界条件で, すべての異なるインペラーのすべてのインペラーブレードとインペラーディスクを自動的に選択します. 同じ機能により, 回転壁境界条件で使用される累積選択 “rotating_wall” でハブとシャフトサーフェスもグループ化されます.
シミュレーションアプリでの累積選択とパーツの使用
パーツと累積選択を使用すると, 複雑でパラメーター化されたジオメトリオブジェクトのライブラリを作成できます. さらに, 累積選択を作成できるため, 非常にユーザーフレンドリなアプリケーションを構築できます. アプリケーションのユーザーは, プロセスやデバイスの設計における無関係な専門的事項に煩わされる必要はありません.
最後の例として, 上で例示した操作の結果として得られるミキサーアプリケーションを見てみましょう.
このアプリでは, ミキサー設計者は, ミキサーのインペラーの種類と寸法, 容器の種類と寸法, および動作条件を選択できます. シミュレーションの出力は, プロセスにおける混合効率です. このアプリケーションのユーザーは, CFD シミュレーションに関連する専門的事項に関する最小限の知識のみで, 利用可能なコンポーネントを使用して混合効率を高めるためにさまざまなモデルパラメーターを変更することに集中できます. ユーザーは, これらの専門的事項ではなく, 関連する物理現象に集中できます.
その他の参考資料
- このブログが気に入った場合は, アプリの配布, 管理, 実行のためのプラットフォームである COMSOL Server™ についても学んでみてください.
- 以前のブログ, アプリケーションビルダーチュートリアルアプリの入手先 をお読みください
コメント (0)