その他¶
ドキュメントおよびテストに関するさまざまな改善¶
特に、マニュアルに記載されている圧力の定義はバー(bar)で記述し、モースポテンシャルにおける力に存在する誤った r_ij を修正しました。膜埋め込みに関するドキュメントと参考文献を追加しました。テンプレート解析プログラムのドキュメントを改善しました。gmock を gcc 6 と互換性があるように修正しました。
make_ndx のヘルプテキストの改善¶
ブール演算子の使用方法を明確化しました。以前のヘルプテキストは、AND、OR、NOT がキーワードとして機能するという誤った情報を与えていた可能性があります。ほとんどの場合、gmx select を使用することで置き換えることができることを示す参照を追加しました。
MDPステートメントで読み込んだアイテム数に対するチェックを追加¶
すべての sscanf() ステートメントで、mdp ファイルから読み取られたアイテムの数をチェックする機能を追加しました。
glibc 2.23 との互換性に関する回避策¶
glibc 2.23 は、string.h の動作を変更し、これによりすべての CUDA バージョンとすべての gcc コンパイラバージョンで問題が発生しました。 GROMACS ビルドシステムは、この glibc を検出し、CUDA コンパイルに _FORCE_INLINE プリプロセッサ定義を追加することで、この問題を回避します。
NBNXN CUDAカーネルを4つのコンパイルユニットに分割¶
CUDA 非相互作用カーネルは、可能な場合は 4 つの異なるコンパイルユニットに分割してビルドされます。つまり、Compute Capability 3.0 以上のデバイスの場合です。これにより、コンパイル時間を大幅に短縮できます。
単一のコンパイルユニットの使用を強制するには、GMX_CUDA_NB_SINGLE_COMPILATION_UNIT CMakeオプションを使用できます。
改行文字を書き込まない場合に、ストリームをフラッシュするように追加¶
一部のプログラムでは、改行文字のみを使用して、ステータスを書き出すために、例えばstderrに書き出す際に、改行文字を使用しています。一部のオペレーティングシステムでは、これにより出力がバッファにキャッシュされるため、この変更により、これらの出力ステートメントに対して明示的に`fflush()`を呼び出すようにしています。
修正:`1772`の問題
サポートされているcmapとQMMM¶
以前は、QMMMは最大4つの原子を使用した結合相互作用のみをサポートしていました。現在では、任意の数の原子をサポートし、いくつかのハードコードされた仮定が削除されました。
lmfitライブラリのサポートが向上¶
現在、lmfit 6.1 を使用しています。CMake オプション GMX_EXTERNAL_LMFIT を使用すると、GROMACS に含まれている lmfit パッケージではなく、外部の lmfit パッケージをリンクできます。
libxml2 は依存関係でなくなった¶
GROMACS は、以前は libxml2 を使用してテストコードを実行していました。現在は、tinyxml2 (またはオプションでシステム版) のバンドル版を使用しています。
Windowsでの自動FFTW3コンパイルを無効化する¶
FFTW の配布には、Windows 上で自動的にビルドするための設定が含まれていません。特に、./configure; make; make install の手順によるビルドはサポートされていません。
チェックポイントの一致に関する警告を削除する¶
mdrunは、再現性を要求された場合に、マイナーバージョン、ビルド、または使用されているレイの数に不一致がある場合にのみ警告を表示します。また、精度が一致しない場合に、別のメッセージを表示するように変更されました。
失敗時にファイル名と行番号を報告する¶
fget_lines() 関数で gmx_fatal の呼び出しを拡張し、読み込みエラーが発生したファイル名と行番号を報告するようにします。
EMを使用した制約エラーの処理¶
すべてのエネルギー最小化アルゴリズムは、生成された NaN 座標に対して制約を適用する際に、ランダムなエラーで失敗する可能性があります。 Steepest descents (急降下法) は、制約エラーのあるステップを拒否します。 他のすべての最小化アルゴリズムは、急降下法を使用することを推奨し、致命的なエラーを生成します。
macOSでの静的ライブラリcudartの無効化¶
最近の CMake のバージョンでは、libcudart の静的バージョンがデフォルトで有効になっていますが、これにより、OS X の最新バージョン (10.11) ではビルドが失敗することがあります。そのため、このプラットフォームでは無効化しています。
まれに clock_gettime との連携で発生する問題を修正¶
プレプロセシングコマンドの誤った使用は、`clock_gettime()`関数の不適切な使用につながる可能性があります。
NVIDIA JIT キャッシュを OpenCL で無効化¶
NVIDIAのJITキャッシュは、カーネルソースが変更された場合に、パスが変更されていない(例えば、新しいインストールによってカーネルが上書きされる)場合に、OpenCLコンパイル時に機能しなくなることが知られています。そのため、NVIDIA GPUを使用している場合は、JITキャッシュを無効化します。AMD GPUには影響しません。