如何在OpenFOAM中增加边界条件【翻译】
注:如有翻译不妥,还请见谅
翻译自:http://openfoamwiki.net/index.php/HowTo_Adding_a_new_boundary_condition
首先请看:http://openfoamwiki.net/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中。
- 现在新的边界条件应该可以正常运行了。