當前位置:成語大全網 - 新華字典 - OpenFOAM中的參數字典使用剖析

OpenFOAM中的參數字典使用剖析

Original post ( /s/blog_5fdfa7e60100d6my.html )

對於模型參數OpenFOAM采用了參數字典dictionary來由用戶指定,參數字典的使用,對參數設置及其新模型的OpenFOAM擴充至關重要。本文從參數字典類對象構建,字典文件設置,字典查詢對參數字典類的使用進行詳解。

對字典類對象構建通常采用如下形式

其中:ObjectName和“dictionaryFileName”換成妳要構建對象名字和字典文件名字。

典型參數類型設置方法:

scalar,label,word 類型:

關鍵字 值;

如參數C1的值為0.1,則可設置為

C1 0.1;

帶有單位的類型dimensionedScalar(帶有單位的標量)

關鍵字 創建的參數名字 參數單位 值;

如 黏性設置

nu nu [0 2 -1 0 0 0 0] 5.952e-06;

加速度矢量

g g [0 1 -2 0 0 0 0] (0 0 0);

字典可以分組,成為子字典(subDict)

如大渦壹方程模型參數設置

子字典還可以有子字典以此類推。

通過字典文件設定參數以便在程序中使用。

label,scalar 類型查詢

比如查詢ObjectName字典中參數C1的值,將其值付給變量Vc1,;

scalar Vc1(readScalar(ObjectName.lookup("C1"));

查詢帶單位的量,比如查詢黏性

dimensionedScalar nu(ObjectName.lookup("nu"));

查詢加速度

dimensionedVector g(ObjectName.lookup("g"));

註意對於基本類型label或者scalar需要使用readLabel 或者 readScalar兩個函數,而對於帶單位的量直接查詢就可以了。

如查詢oneEqEddyCoeffs下的ck

dimensionedScalar ck(readScalar(ObjectName.subDict("oneEqEddyCoeffs").lookup("ck")));

如果子字典還有子字典,則連續使用subDict。