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

371行目: 371行目:
<syntaxhighlight>
<syntaxhighlight>
IOstream::formatEnum(dict.get<word>("format"), IOstream::BINARY);
IOstream::formatEnum(dict.get<word>("format"), IOstream::BINARY);
</syntaxhighlight>
'''IOstreamOption for constructing streams
'''
ストリームのコンストラクタが IOstreamOption を受け入れるようになり、IO オプションを単一のパラメータとして便利に束ねることができるようになりました。
writeObject() の呼び出しに IOstreamOption を使用します。
これらの変更はどちらも、渡されるパラメータの数を減らし、最小限の労力でIOstreamOptionに将来的に追加できるようにします。
'''regIOobject'''
store() メソッドは、オブジェクトも登録するようになりました。
以前の store() メソッドは、検索可能であることを確認せずに ownedByRegistry フラグを設定するだけでした。
これで、実際に登録されていることを確認してください。
tmp<T>項目のレジスタ/ストアをサポートしました。
tmpパラメータはクリアされず、さらに使用できるようにPTRからCREFに変更されました。
暗黙的に登録することでコードの簡素化が可能になります。GeometricField::New ファクトリーメソッドを使用して、例えば
'''Old Code
'''
<syntaxhighlight>
volScalarField* ptr = new volScalarField
(
    IOobject
    (
        fieldName,
        mesh.time().timeName(),
        mesh,
        IOobject::NO_READ,
        IOobject::NO_WRITE,
        true  // Register
    ),
    mesh,
    dimless,
    zeroGradientFvPatchField<scalar>::typeName
);
ptr->store();
</syntaxhighlight>
New Code
<syntaxhighlight>
auto tptr = volScalarField::New
(
    fieldName,
    mesh,
    dimless,
    zeroGradientFvPatchField<scalar>::typeName
);
regIOobject::store(tptr);
</syntaxhighlight>
或いは
<syntaxhighlight>
regIOobject::store
(
    volScalarField::New
    (
        fieldName,
        mesh,
        dimless,
        zeroGradientFvPatchField<scalar>::typeName
    )
);
</syntaxhighlight>
</syntaxhighlight>