Elmerバージョン9.0のリリースノート

Elmerのバージョン9.0がリリースされました。
GitHub上のelmerfemにある[リリースノート](https://github.com/ElmerCSC/elmerfem/blob/devel/ReleaseNotes/release_9.0.md)を機械翻訳にかけました。

前リリース:**8.4**
対象期間：**2018年12月18日～2020年11月10日まで**
コミット数：**～1340**（マージを除く）

これらのリリースノートには、もっとも重要な変更点に関する情報が記載されています。コミットメッセージの完全な一覧を取得できます。たとえば次のようにします：
git log -since=\"2018-12-18\" \> log.txt\

CSC の中心的なElmer チーム（Juhani K.、Mika M.、Juha R.、Peter R.,Thomas Z.)以外にも、Daniel B.、Denis C.、Eef v. D.の貢献がgit logに示されています。Eelis T.、Fabien G-C、Foad S. F.、Fredrik R.、Olivier G.、Joe T.、Luz P.、Mondher C.、Rupert G.、Sami I.、Sami R.、Samuel C.、Saeki T.）がこのリリースに貢献しています。

さらに、いくつかのブランチで進行中の開発がありますが、このリリースには統合されていないため、ここでは取り上げません。また、原著者がgit以外の方法でコードを渡している場合もあり、そのような場合は誤って名前が省略されている可能性があります。

すべての開発者の貢献に感謝します。

## 新しいソルバーモジュール

### IncompressibleNSVec

- ベクトル化されたスレッドアセンブリを利用した非圧縮性ナビエ・ストークスソルバー
- ブロック前提条件の組み込みサポートを含みます（シューア補行列近似が含まれています）
- 非ニュートン材料則を含みます
- Elmer/Iceコミュニティを対象としていますが、他のコミュニティにも役に立つかもしれません。

### BeamSolver3D

- 3次元空間に埋め込まれた弾性梁のティモシェンコ方程式のソルバー（ドキュメントについてはElmer Models Manualを参照してください

### GmshReader

- メッシュと結果をシンプルなGmshファイル形式（ElmerSolverでも記述可能）で読み込みます
- ソルバーには、現在のメッシュへのフィールドの補間が含まれています。
- 結果が以前のシミュレーションから継承されるような階層的なシミュレーションに使用できます

### ModelMixedPoisson

- ポアソン方程式用の汎用混合FEMソルバー（ドキュメントはElmer Models Manualを参照してください）
- div適合（面）有限要素近似を採用

### SpringAssembly

- 構造モデルに節点ごとのスプリングと質量を追加するための汎用ユーティリティ（ドキュメントについてはElmer Models Manualを参照してください）

### MarchingODESolver

- 移動するメッシュ上で常微分方程式を計算できるソルバー。
- メッシュが構造化されており、既知の描画速度があることを前提としています。これにより、時間ステップとメッシュパラメーターを直接関連付けることができます。

## 拡張ソルバーモジュール

### ElasticSolve

- 新しいUMAT材料モデルの追加が簡単になりました：elmerf90コマンドでコンパイルすれば十分です
- UMAT材料モデルの状態変数は、結果ファイルに書き込まれ、可視化されます
- 軸対称性をサポートするためにUMAT実装が更新されました

### EMWaveSolver

- 2次の基底関数と2次元シミュレーションをサポートするために更新されたソルバー
- ソルバーはElmer Modelsマニュアルに記載されています。

### MagnetoDynamics（磁気力学）

- ソース投影（Jfixの決定）の修正と一般化。
- 時間-調和AVモデルの表面インピーダンス条件
- 過渡解析における1Dワイヤーのための薄い領域の定式化
- 時間-調和AVモデルで可能になった磁気異方性（複素数値の反発テンソル）

### MagnetoDynamics2D

- 方程式にローレンツ項を追加するために速度場を与えることができます。
- コアロス経験式（ベルトッティ＋拡張ベルトッティ）

### MagnetoDynamicsCalcFields

- 複素数値の反発テンソルの場合の後処理を可能にしました
- 磁気共エネルギーの計算を可能にしました

### ResultOutputSolver

- Vtu形式:
    - ピース、つまりボディや境界の保存を可能にします
    - エレメンタル、DG、IPフィールドの保存の改善
- Gmsh形式:
    - 出力におけるマスキング機能の使用の改善

### ShellSolver

- シェルソルバーを使用した固有値解析が可能になりました
- ばね、合力、カップリングBCsが追加されました
- 2次元シェルと1次元ビームの複合解析が可能になりました
- 2次元シェルと3次元ソリッドの完全連成解析が可能（メッシュ上の幾何学的制約の影響を受けます）
- 掘削の自由度を備えた代替配合を使用するための部分的なサポート

### StructuredMeshMapper

- 3つに制限する前に、任意のレイヤー数を有効にします。

### HeatSolver

- ベクトル化された新しい暫定版：HeatSolverVec
- ビュー係数計算の対称3Dケースを有効にして、大幅な時間の節約を実現します
- 可能であれば、Gebhart因子を線形系を対称にする"ViewFactor Symmetry"

### StressSolver

- 線形弾性ソルバーにMaxwell粘弾性モデルを追加
- 非圧縮性（圧力変数の導入）として実行することも可能
- 層状地球変形モデルのオプションのプレストレス移流項

### WaveSolver

- ソルバーは、調和モードと固有モードのケースのモデル化にも使用できます。

### ParticleAdvector

- 粒子をガウス積分点からも送信できるようにします。これは、表面に配置されていないため、堅牢性にとって有益です。
- ローカルのクーラン数に基づくローカル積分時間

## ElmerSolverライブラリ機能

### ブロックシステムの処理

- 複雑な問題を解くためのブロック行列アプローチが強化されました。現在、ブロックアプローチは、解のいくつかの段階でいくつかの方法で使用できます。
    1.  モノリシック方程式を、解きやすいサブ問題に分割します（例：非圧縮性NS）
    2.  線形マルチフィジックス（連成）問題をブロック行列に結合します（例：FSI問題）
- クラス1）に属する問題については、モノリシック行列の再作成を実行できます。これにより、標準的な線形代数をより良く利用して直接ソルバーを利用したり、システムを高調波問題や固有値問題に変更したりすることができるようになります。
- マルチフィジックス問題の完全連成シミュレーションに関連するブロック行列構造を利用する方法については、ElmerSolver Manualの新章 "Block-matrix construct to build tightly coupled
    solvers"を参照してください。

### より経済的な統合ルール

- 1 < p <=8の場合の四辺形p要素のためのテンソル積規則を置き換えるために、角柱要素のための経済的なガウスの四乗則のコレクションが導入されています。n=(p+1)**2点のテンソル積規則は、より経済的なものに置き換えられました。

### div-適合div準拠のベクトル有限要素（面要素）のディリクレBC

- Q {f} j = Real...の形式のsifコマンドを使用してベクトルを指定できます通常の成分を使用して、DOFの値を統合し、データのベクトル値補間を行う価値あるデータ。ここでQは、面有限要素で近似されたelmer変数です。

### 消去法による適合BC

- システムは、対向する側の節点またはエッジに関連するDOFを1自由度に組み立てるような適合境界を識別できます。
- これにより線形システムのサイズが減少し、数値的に有利です。
- 非周期性を含む場合があります。ベクトル値の問題では、すべての成分を同じように扱わなければなりません。
- エッジDOFの適合BCは、エッジの方向を考慮する場合があります。
- "適合BCの適用"と"適合BC"を定義したテストケースを参照してください。

### Zoltanによる内部パーティショニングの改善

- Zoltanで内部パーティショニングを有効にして、接続された境界を尊重します。

### プライマリソルバーが他のソルバーを呼び出すことができます

- キュメントについては、ElmerSolverマニュアルの"Solver execution by a master solver"の節を参照してください。
- 主な問題を解決する前後の呼び出しを可能にします。
- また、各非線形反復の前後に呼び出すことも可能です。

### 非線形系のためのアンダーソンアクセラレーション

- 非線形収束を加速するために以前の解と残差を使用するアンダーソンアクセラレーションのバージョンを実装しました。
- 二次関数への非線形収束を高めることができるかもしれない、二次関数の収束（ニュートン法）は改善されません。

### オンザフライでメッシュを交換

- シミュレーション中にメッシュを入れ替えるライブラリ機能を実装しました。
- 現在、履歴データは補間されていません。

### ListGetElementalルーチン

- ガウス積分点の材料パラメーターを取得するための、より柔軟なルーチン。
- 依存関係が依存するフィールドの種類（節点、DG、要素、IPポイント）を自動的に検出します
- ベクトル化された有限要素アセンブリで使用されるベクトル化されたバージョン

### ビューファクター

- 対称性のある3Dケースでのビューファクターの計算を可能にします。
- 放射率が1と等しくない場合の計算を高速化します。
- DGと併用してビューファクターを使用できるようにする（HeatSolveVecの場合）

### 実行制御

- シミュレーションの外部ループ制御を可能にします。
- 最適化とパラメトリックスキャンなどに使用できます。
- 制御レベルに変数 \"time \"を使用しないため、過渡系にも適用できます。

### インラインパラメーター

- インラインキーワード-rparと-iparを有効にします。
- 次に、引数の数+引数の値が続きます。

### 一般的なソース制御

- 与えられた節点での解（または反力）が望む解となるように、r.h.s.荷重ベクトルを調整できます。
- HeatSolveの古いSmart Control操作を模倣したものですが、ライブラリレベルで動作します。

## ElmerGrid

- UNV、mptxt、Gmshファイル形式のインポートを修正しました。
- FVCOMフォーマット用の暫定リーダー
- メーティス分割（-metisseed）のシードを定義するための可能性を追加します。
- 押し出しでエンティティ名を維持します。
- ElmerGridとElmerGUIの下にあるそのプラグインは、同じコードベースを使用するように調和されました。

## ElmerGUI

Saekiによる膨大な数の改善点!ハイライトは以下の通りです。

- ケースを一目で見て、もっとも多くのウィンドウに簡単にアクセスできるオブジェクトブラウザ
- sifファイルの意図しない上書きを避けるため、sif auto-generation機能を削除
- "Generate, save and run"ボタンを押すと、GUIで修正したケースを素早く実行
- sifウィンドウ上の"Save and run"ボタンを押すと、sifウィンドウ経由で修正されたケースを素早く実行
- ElmerVTK、ElmerPost、ParaViewから選択可能なPostprocessorボタン
- 新しいプロジェクトを開始するための代替方法としての"New project..."メニュー
- "Save project"メニューから"Save project as..."メニューを分離し、プロジェクトを別のディレクトリに保存
- 改良された、より堅牢なプロジェクトローディング
- 構文の強調表示とフォント選択のためのsifウィンドウとソルバーログウィンドウの"Preference"
メニュー
- ファイルメニューの"Recent projects"で、最近使ったプロジェクトを素早く読み込み
- ElmerVTKポストプロセッサの改良（簡単な.vtuファイルの読み込み、タイムステップ制御や変位ボタンを含む下部ツールバーなど）

## 設定とコンパイル

- msys2を利用した新しいWindowsインストーラー
    - ElmerGUI の有無にかかわらず + MPIインストーラーの有無にかかわらず

## Elmer/Ice

- Elmer/Iceの新機能はelmerfem/elmerice/ReleaseNotes/release_elmerice_9.0.mdに記載

## その他

- FreeCADBatchFEMToolsの改善とテストの追加