「OpenFOAM v2006 リリースノート」の版間の差分

239行目: 239行目:


このファイルには、同等の obj ファイル (-write-obj オプションで生成されます。以前は -blockTopology) 接続性、セル形状、セルIDを含むので(同等の をブロック番号に変換します)。
このファイルには、同等の obj ファイル (-write-obj オプションで生成されます。以前は -blockTopology) 接続性、セル形状、セルIDを含むので(同等の をブロック番号に変換します)。
=== v2006 Developer Upgrade Guide
===
==== 一般的な
====
stdFoam.H (および autoPtr.H) 内の Foam 名前空間に std::unique_ptr を使用することを追加し、Foam::unique_ptr または std::unique_ptr として一般的に利用できるようにした。特に低レベルコンテナでは、需要駆動型のデータや autoPtr を使用した旧式の処理を変更して unique_ptr を使用するようにしました。
==== 非推奨と削除 ====
'''Deprecated Methods
'''
は、長さが 0 以外の環境が存在するかどうかをテストするための hasEnv() 関数の代わりに env() 関数を静かに廃止します。
この命名は目的をより明確にし、 getEnv(), setEnv() の命名に似たものになります。
以前 (2018-10) には、それぞれ findObject() と getObjectPtr() の代わりに使われていた objectRegistry メソッド lookupObjectPtr() と lookupObjectRefPtr() が、コンパイル時に非推奨となるという警告が出ていました。
'''削除された方法
'''
Switch::asText()
で置き換えられた Switch asText() メソッドを削除します。
c_str() と str() はいくつかのバージョンがありました。
invariantIII()
関数テンプレートSymmTensor2D.invariantIII()とTensor2D.invariantIII()は、2×2行列には3番目の不変量が存在しないので削除されました(66b02ca5参照)。
'''削除された項目
'''
サーフメッシュのサンプラーは撤去されました。
これらは内部的にサーフェス値をサンプリングして保持する手段を提供していましたが、OpenFOAM-v1906で導入されたサーフェスサンプリングの変更に伴い、冗長なものとなりました。
==== 定義の変更
====
PrimitivePatchのテンプレートパラメータが4つのパラメータから2つのパラメータに簡略化されました。
通常のユーザーコーディングには影響しないようです。
==== 行動の変化 ====
'''分析的電子分解
'''
OpenFOAMでは、与えられたテンソル/テンソル2Dの固有値や固有ベクトルは、明示的な代数式によって計算されてきました。しかし、v2006以前には以下の3つの問題がありました。
テンソル/テンソル2Dから複素型の固有値や固有ベクトルを計算することはできませんでした。
テンソル/テンソル2Dの等値分解アルゴリズムは数値的にかなり脆弱であった。
symmTensor/symmTensor2Dでは、共分散アルゴリズムは利用できませんでした。
v2006では
symmTensor/symmTensor2Dのための新しい等値分解アルゴリズムが提供されました。
解析的な等分割アルゴリズムの戻り値の型が数学的に一貫していることが保証されました(55e7da67参照)。
tensorとtensor2Dは複素固有値と固有ベクトルのみを返すようになりました。
symmTensorとsymmTensor2Dがスカラー固有値と固有ベクトルのみを返すようになりました。
特に多項式根探索アルゴリズムの数値的安定性を向上させることにより、電子分解アルゴリズムの脆弱性が大幅に減少しました(8ca724ff, 55e7da67を参照)。
ヘッダーの文書化、および外部ソフトウェアとのビット単位の比較を行うテストアプリケーションは、入出力の動作における予期せぬ変更を防ぐために大幅に改善されました(55e7da67, 6a53794e, 66b02ca5, 8ca724ffを参照してください)。
'''invariantII()
'''
関数テンプレートTensor2D.invariantII()とSymmTensor2D.invariantII()の第2不変量を計算するアルゴリズムは、正しい出力を生成するように修正されました(66b02ca5を参照)。
'''辞書
'''
辞書メソッド名の使用を統一しました。
以前のリリースでは、辞書 "取得 "メソッドの様々なタイプを導入し、getOrDefaultが含まれています。今では移行を完了し、以前はlookupOrDefaultを持っていたどこでもgetOrDefaultを使用します。これにより、動作が同じである2つのメソッドの混在使用を避け、名前を短くし、"lookup "アクセス(すなわち、トークンを返す)の区別を促進します。 ストリーム、エントリを探して返す) と "get" アクセス (つまり、上記のようにスカラやラベルなどの具体的な型に変換して) があります。
シングルパラメータの辞書writeEntry()メソッドを追加しました。
辞書は自分の名前(dictName)を知っているので、コンテンツを書くときに使うことができます。
'''argList'''
argListの処理を拡張し、述語チェックを含むようにしました。
argListメソッドの名前をさらに辞書メソッド名と整合させました。
2 パラメータの get() メソッドを静かに廃止。
より馴染みのある getOrDefault メソッドを使用しています。
opt() メソッドを静かに廃止し、 get() メソッドを使用するようにしました。
'''Strings'''
ホワイトリスト/ブラックリストにマッチするstringListOps
stringOps の inplaceRemoveSpace() メソッドと string replaceAny() メソッドを使用します。
replaceAny() メソッドは、検索文字列と置換用の
文字に置き換えられます。置換文字は、nul char ('\0')にすることもできます。
これは単に文字を削除するだけです。いくつかの使用方法があります。
予約文字の置換
<syntaxhighlight>
str.replaceAny("<>:", '_');
</syntaxhighlight>
シェルのメタ文字やファイルシステムの予約文字を削除する
<syntaxhighlight>
str.replaceAny("*?<>{}[]:", '\0');
</syntaxhighlight>
'''Streams'''
追加の ISstream::getLine() で nullptr を受け付けるようになりました。
これは std::istream::ignore に渡され、行の内容をバッファリングせずに読み込んだり破棄したりすることをサポートします。
'''IOstreamOption'''
format/compress enum ルックアップのデフォルト値をサポートします。
好ましいデフォルトフォーマットがASCIIではない状況を回避します。
例えば、辞書入力で
<syntaxhighlight>
format binar;
</syntaxhighlight>
この入力ミスにより、以前はformatEnumのデフォルトがASCIIになっていました。これで、デフォルトの動作を適切に制御できるようになりました。
<syntaxhighlight>
IOstream::formatEnum(dict.get<word>("format"), IOstream::BINARY);
</syntaxhighlight>


== 前処理 ==
== 前処理 ==