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。