註:如有翻譯不妥,還請見諒
翻譯自:/index.php/HowTo_Adding_a_new_boundary_condition
首先請看:/index.php/Contrib_groovyBC
如果妳沒有合適的邊界條件,請進行下面的步驟:
選擇壹個和妳需要的邊界條件相近的已有邊界條件—我們叫它originalFvPatchField。
拷貝該邊界條件的目錄到其他任意位置。(比如say run/myCode)。
將拷貝的所有文件全部重命名(比如say customFvPatchField)。
在所有新的文件文本中將舊有名稱全部查找替換為新的名稱(比如originalFvPatchField替換為customFvPatchField)
修改代碼使之適合妳的需求
創建目錄結構:myCode/Make,並且在其中放置文件和選項。
將相關的信息放入文件當中:
在finiteVolume/Make/files目錄下查找originalFvPatchField
拷貝相關的入口到妳的myCode/Make/files目錄下
將入口重命名為妳需要的—用妳的customFvPatchField來重命名它(如果在最後有壹個s,將s保留)
告知編譯器新庫的名字。使用$(FOAM_USER_LIBBIN)來替換$(FOAM_LIBBIN),將lib添加到新名稱前面,它應該看起來是這樣的:
LIB = $(FOAM_USER_LIBBIN)/libcustomPatchField
選擇文件應該有EXE_INC(對任意的包含都適用,比如I$(LIB_SRC)/finiteVolume/lnInclude之於finiteVolume)和LIB_LIBS(對任何包含庫,比如lfiniteVolume之於finiteVolume),其他LIB_LIBS也壹樣。
編譯:$wmake libso
添加任何需要的新的字典條目到妳的初始條件文件中,比如0/U和0/P 文件。
增加庫("libcustomFvPatchField.so" "libOpenFOAM.so")到controlDict中。
現在新的邊界條件應該可以正常運行了。