SALOME †この資料は公開されている英文資料を柴田が学術目的のために非公式に和訳しているものです SALOME:オープンソースの数値解析シミュレーションのための統合化プラットホーム 公式サイト:http://salome-platform.org 開発:CEA・フランス原子力庁、EDF・フランス電力公社、OpenCASCADE・オープンソース3次元モデリングツール SALOME.5 †これまでの10年ほどで、コンピュータのハードウエアやソフトウエアの性能向上は、原子力利用技術の分野におけるシミュレーションソフトウエアに対して、著しく大きな変化をもたらしてきました。
新しいコンピュータの解析能力は、以下に示す画期的なシミュレーションを可能にしてきました。 2001年より、これらの展開を効果的に促進し活用するために、CEA:フランス原子力庁とEDF:フランス電力公社は、SALOMEと名付けたソフトウエアプラットホーム(解析システムの基盤)を開発してきました。 このSALOMEは、様々な複雑なCAEアプリケーションを統合化するためのツールとして活用されます。 このツールは、CADモジュール、モデルのメッシュ生成、入力ファイルの定義、解析プログラム連携、結果の可視化、などの機能を実現するプログラムとして構築されています。 このプラットホームは、コミュニティでの共同開発を念頭に置いて構築が進められています。そのため、LGPLライセンスに従うことでこれを実現しています。 SALOMEが提供するソフトウエアのモジュールやサービスにより、様々なCAEアプリケーションを可能にしています。 このことは、学術的な解析コードを容易に利用できるようにし、利用者の環境に適合させることにもつながっています。 SALOMEは、EURIWAREとOpenCASCADEの支援を受けながら、とても積極的な開発チームの10年にわたる努力の積み重ねにより開発が続けられています。SALOMEは、CEAとEDFにおける原子力の学術研究や工学的開発に関する以下の領域において活用されています。:原子炉物理学、構造解析学、熱流体力学、核燃料物理学、材料科学、地質学や放射性廃棄物シミュレーション、電磁気学や放射線防御 開発状況 †プロジェクト開始:2001年 開発チーム:20名・これまでの合計で200人年 解析検証:3700種のテスト バグの対応:年間で500件を集約し確認 ソフトウエア規模:120万行(9割がC++・1割がPython) 配布計画:2年毎にメジャーバージョン公開・半年毎に修正版の公開 利用者数 †EDF・フランス電力公社とCEA・フランス原子力庁:300名利用 外部:4000名利用 ウエブからのダウンロード:年間に12000件 SALOMEの重要な特徴 †・CAEの標準的な手順に対応した学術的なソフトウエアを開発する(データ変換の形式、技術的な選択) CEAとDEFにおける全体的な目的 †CEAやEDFにおける多くのプロジェクトが、現在、SALOMEを活用しています。それは以下の目的を実現するために、各種のツールを統合して統合的なシステムを構築するためです。 ・物理現象の数値解析を目的とした統合的な開発環境を提供する 主要機能と技術的選択 †■ユーザーインターフェイス SALOMEのプラットホームは、解析に関する全ての作業をカバーするような作業環境を提供します。具体的には、CADで定義される形状データの作成から結果の可視化までに対応しており、これを実現するために、共通データ形式や管理ツールや連携ツールなどにより各種のプログラムが統合されています。 ・SALOMEの利用にあたっては、2種類の方法が組み込まれ提供されています。 SALOMEでは、両方の利用方法では同じ解析機能が利用でき、この切り替えのために簡単な方法が提供されています。 ■各種機能の統合と解析ツールの連携 ・数値解析のプラットホームとして、SALOMEは非常に多機能で、改良を容易にするためにモジュール化された構成となっています。これより、PythonやC++言語で開発された解析ツールやモジュールを追加することで、容易に機能拡張が可能です。 ■解析手順の管理 ・プラットホームの管理機能を用いることで、利用者は、並列処理クラスタを活用して連携はしてはいるものの利用手順が複雑な解析プログラムの実行を、容易に設定し管理することができます。この機能は、対話的に進めることもバッチジョブとして利用することも出来ます。 ■メッシュと領域データ管理 ・SALOMEでは、解析モデルのメッシュや領域の情報を内部データとして記述するために、HDF5と言う形式を用いています。ここでは、並列処理用の分割したメッシュを考慮することもできます。 ダウンロード †SALOMEは、http://www.salome-platform.org より、いくつかのLinux用とWindows用のソフトウエアをダウンロードすることができます。このサイトでは、利用手順書や質疑応答などが提供されており、また利用者用解説文書も提供しています。 サービスとサポート †EURIWAREとOpenCASCADEでは、技術的なサポートやトレーニングを含めたSALOMEに関する全般的な利用者支援のサービスを提供しています。さらにサポートサービスは、大学などの学術的組織や大小の企業において、特別に必要とする内容に限定したものも提供されています。具体的には、以下のようなものです。 ・ヘルプデスクへの質問と回答:技術的問題点に関する専門家の支援を受けることができます。これはサポートの契約期間において、電子メールや電話を持ちいて質疑応答を行います。 より詳しい内容は、ウエブを参考にしてください。 さらにSALOMEのトレーニング部門では、定期的に講習会を実施しています。ここでは、初心者がSALOMEの利用技術を自主的に修得するための支援を行い、さらに複雑な検討を行うための高度な利用技術を開発しています。 SALOMEを取り巻く連携 †SALOMEは、高機能なCADデータ変換ツールや商用のメッシュ生成ツールなどと連携して利用することができます。 これらのツールの提供会社など ・CAE Linux:工学解析用Linuxシステム SALOME 6 とさらなる展開 †現在のSALOMEの開発チームは、今後の展開として、以下の項目を目標としています。 ・並列可視化(Paraviewとの連携) 謝辞 †最近のSALOMEの並列解析機能の開発においては、IOLS, EHPOC, OpenHPCなどのプロジェクトにおけるクラスターを活用しており、System@ticの支援を受けています。 形状生成:Geometry module †SALOMEの形状生成モジュールでは、シミュレーションで用いる3次元形状を定義しています。ここでは、複雑な3次元形状に対して生成・編集・転用・修正などを可能にする豊富な機能を提供しています。 このモジュールは、Open CASCADE で開発された形状処理システムにより機能を実現しており、形状の表面を定義し(BRep)、次のメッシュ生成で必要となるモデルの形状特性の情報を含んでいます。 大きく分けて、形状生成モジュールには2つの目的があります。 一般的な形状は、円柱・球・円環などの幾何学的形状や自由曲面などを組み合わせて、空間内に配置されます。より複雑な形状を構成するためには、これらの基本的な形状に対して、「cut:切り取り,fuse:結合,intersect:交差」などの形状操作を利用します。形状の端部に対しては、「fillet:連続化,chamfer:面取り」などの操作が適用できます。 SALOMEは、BREPやACISフォーマットによる、IGESやSTEPによる形状データを読み込むことができます。さらに強力な形状修正機能も備えているため、過剰に複雑なモデルを単純化したり、流用したモデルの形状定義が不十分な場合に修復することも可能です。 形状生成モジュールが持つ機能は、マウスによる直接的な画面操作により容易に利用できます。またこの機能は、SALOMEが持つPythonスクリプト実行機能により、プログラムとして自動的に利用できます。 さらにSALOMEは、利用者の操作手順を、コマンドスクリプトとして記録することができます。この機能は、複雑な形状を自動的に生成するときに非常に有用ですし、SALOMEの形状生成モジュールを利用者が使いこなすための補助になります。 主要機能 †■CADモデルの読み込み ・標準的には次のCADデータのフォーマットに対応します。:ACIS, BREP, STEP, IGES ■形状モデルの生成と修正 ・基本要素:点、線、円、楕円、弧、曲線、矢印、面 ■形状の補正 ・不要面の整理、不完全な輪郭の調整、要素内部の線分の削除、欠けた面の除去、面の結合、面の貼付け、自由境界の確認、自由表面の確認、面の法線の変更、点や線の追加 ■形状の計測 ・点の座標軸、形状の中心、断面の慣性、包含する領域、最短の距離、許容誤差、角度 ■CAEモデルの書き出し ・対応するCADフォーマット:ACIS, BREP, STEP, IFES ■可視化 ・表示と削除、配色の変更、透明度の設定、表示モード(面表示・線表示)、等測線の本数、など メッシュ:Meshing module †このモジュールでは、形状生成モジュールで定義された3次元形状を用いて、4面体や6面体などの有限要素に変換します。 メッシュモジュールは、1次元・2次元・3次元のメッシュデータを生成し編集するために用いられ、この処理には様々なオープンソースで公開されたメッシュ生成手法を用いています。 さらにSALOMEは、外部で開発されたより高度なメッシュ生成手法との連携機能も持っています。 サブメッシュの概念は、形状モデルの特徴を考慮するために活用されます。それぞれのサブメッシュに対して、異なったメッシュ生成条件を設定できます。 メッシュの最適化のために、パターンマッピング手法が利用されています。メッシュの品質を確認し、局所的な修正や調整を行うために、有用なツールが提供されています。 メッシュの変換操作としては、移動、回転、対称、押出、回転などがあり、これらを用いて複雑なメッシュや複合したメッシュを生成することができます。 メッシュは、グラフィック表示に対する操作で容易にグループ化することができ、これより初期の境界条件の設定を容易にしています。 またメッシュのフィルター機能は、効率的にグループを作るために有用です。 メッシュのデータは、様々なフォーマットに従って外部出力することができて、このフォーマットとしては、例えば MED, DAT, UNV などの既存の数値解析ソフトウエア用の形式に対応しています。 全てのメッシュ生成のコマンドは、自動処理のために、Pythonのプログラムを用いて利用することもできます。これによって、複雑な形状生成に対応し、またメッシュ生成における繰り返しの手動作業を整理して単純化することも可能です。 様々な機能を持つSALOMEは、改良されたメッシュ生成手法を、プラグイン形式で容易に導入することができます。 主要機能 †■オープンソースメッシュ生成手法 ・ワイヤー離散化 ■対応する商用メッシュ生成手法 ・Distene BR-SURF ■メッシュ修正機能 ・節点や要素の追加や修正 ■外部とのメッシュデータの入力と出力 ・対応フォーマット:MED, UNV, DAT ■メッシュのグループ化の管理と可視化 ・メッシュの表示/非表示、サブメッシュ:可視化状態、陰影表示、線分表示、収縮省略、表示特性の変更:色、線幅、省略程度、透明度 ■メッシュデータの制御と管理 ・計測:端部の長さ、面積、体積、確認:不要節点、端部の線、面、境界、ゆがみ:極端な角度、角度のねじれ、2次元や3次元での形状のアスペクト比、要素の最小角度など 可視化:Post-processor module †CAEのソルバーより得られた数値解析の結果は、SALOMEの可視化モジュールに読み込まれ、分析された結果が可視化されます。分布する値が変化する様子を可視化するために、様々な機能が利用されています。可視化では、スカラーの結果とベクトルの結果の両方が対象とされ、様々な表現形式が用いられます。(スカラーマップ、等高値曲面、切断面、切断線、3次元プロット、ベクトル表示、変形図、流れ線、ガウス点(要素内の積分点) 隠れた領域内部での詳細な分析を進めるためには、様々な方法で解析データの抜出し作業が必要となります。 非線形で非定常の状態では、動画モジュールににおいて異なった速度で表現することができます。 画像や動画は、より簡単に外部データとして表現すべきであり、解析結果の可視化や容易に容易に利用されます。 主要機能 †■領域に関するメッシュデータの外部との入力と出力:MED、表形式データの入力と出力 ・対応フォーマット:特定形式のアスキーファイル、CSV ■数値解析結果の3次元でのグラフィック表示 ・メッシュ ■数値解析結果の2次元でのグラフィック表示 解析結果データの一覧から作られた2次元のグラフ表示 ■解析結果の動画表示:時間スケールに沿った表現 データ処理と関連ツール:Mesh and field data model and associated tools †SALOMEにおいては、メッシュや領域情報の表現に関して MED データモデルが、重要な役割を担っています。この MED フォーマットは、EDFの研究開発でのオープンソースプロジェクトとして、SALOEMより先に取り組まれてきた成果に基づいています。 このデータ形式は、メッシュ情報やサブメッシュや領域データ表現などの持つ特徴を、共通化したものとして定義されています。 さらにこの共通化では、標準化された HDF5 形式を基本にして、MED-file のライブラリが提供されています。 SALOMEのメッシュ生成や可視化のモジュールでは、データの入力や出力に MED 形式を用いることを提案しています。 そのためSALOMEのプログラムにおいては、プリポストの処理では入力や出力のファイル形式として、MED-fileが推奨されています。 MED ファイル形式は、非常に汎用性があるので、様々な解析プログラムに対応したメッシュ形式として利用することができます。 このメッシュは、構造格子でも非構造格子でも利用でき、線形要素も2次要素も含めることができます。 要素内の節点の結合は、節点の順序による表現と逆の順序による表現に対応しています。 領域の情報は、ガウス点を含むことができ、メッシュのサブゾーンに対して延長しています。そしてここでの値としては、整数も実数を利用できます。 MED ライブラリは、以前に利用された旧式の MED ファイルに対しても完全な互換性を持っています。 これによって、異なったバージョンのSALOMEを利用する場合にも、変換などの手間をかける必要がありません。 提供されるツール †MEDファイルライブラリを利用するうえで、SALOME では、MEDメモリライブラリを提供しており、これはメッシュや領域情報に対して計算処理を実行するために、MED形式のファイル内容をメモリに展開することを可能にしています。 この計算処理では、メッシュやサブゾーンに対して領域情報操作や論理演算操作などが行われ、異なったメッシュ形式の間を変換することも可能になっています。 これは解析プログラムの統合において、重要な役割をもつ機能であり、あるプログラムで利用されたデータを別のプログラムに対して引き渡すとき、若干の調整が必要な場合もありますが、ほとんどの場合に直接に行うことが可能です。 ■MEDメモリライブラリに関連して提供されるツール ・メッシュ形式で表現されたデータを異なったプログラムで利用するために、並列処理で変換することができます。 ジョブの監視と管理:Supervision & job manager module †CAEに関する様々な研究や開発の課題において、多くの領域に関連するパラメトリックなシミュレーションの必要性が増してきています。 代表的な2つの例としては、流体構造連携解析や熱応力構造解析などがあります。 それぞれのシミュレーションツールは、各問題領域においてとても高度化複雑化しており、そのため複合領域のシミュレーションにおいては、完成された各領域でもプログラムを統合することが必要になります。 YACSは、複合解析システムの実現において、複合問題のシミュレーションを管理するためのツールです。 複合解析システムでは、SALOMEや計算モジュールやPythonスクリプトなど、それぞれの計算を連結し統合させます。 YACSの基本機能 †YACSモジュールは、実行しようとする計算手順を構築し編集する機能をもっています。 ■このモジュールの基本機能 ・解析手順を定義する YACSと連携させるためのSALOMEの構築方法 †YACSを用いて解析プログラムを連携するためには、それらをSALOEMのコンポーネントとして変換することが必要です。 この操作は、SALOMEの基本設計などについて十分な知識が必要とされます。しかしほとんどの場合に、支援ツールを用いて行うことができます。 ・hxx2salomeツールは、C++解析プログラムを大きく拡張する編集を自動的に行うもので、includeファイルのから変更します。 ジョブ管理モジュール †ジョブ管理モジュールでは、様々な形式の計算機システムを利用して下記の解析ジョブを、登録し実行し管理しています。 ジョブ管理の基本機能 †■ジョブ管理モジュールでは以下の3形式のジョブを定義する ・利用者作成スクリプト ■ジョブ管理モジュールでは以下の2つの構成のコンピュータを利用できる ・直接操作するコンピュータ(rsh,ssh) |