OpenFOAM程序开发入门(2)

OpenFOAM程序开发入门(2),第1张

能量控制方程:

其中DT为热扩散率。在壁面上给定值条件

需要解决的问题:

1、创建程序需要的新物性和新变量场

打开myicoFoam.C可以看到,程序开始运行时调用CreateFields.H,创建变量场。

打开CreateFields.H,可以看到程序首先从transportProperties文件中读入物性,

这样,创建了新的vol标量场T,从文件T中读入。

对于T的创建具体解释如下:

2、在求解器中加入新的求解方程

下一步回到myicoFoam.C加入新的微分方程,由于温度场依赖于速度场,可放在PISO循环后面。

3、编译

4、在算例中加入新方程的初始和边界条件

修改transportProperties文件,前面已提到DT要从该字典文件读入。设定DT=0.002m2/s

拷贝一个T文件

修改T文件为

5、修改离散格式和代数求解器求解控制文件

在fvSolution中设置代数求解器选项

注意T方程形成的矩阵是非对称的,不要用PCG和DIC

6、运行

你可以简单的添加小的改变 比如在第89行加入:

Info <<"Defining my own kEpsilon model" <<endl

然后就可以编译了

在~/V2F文件夹下执行

wmake libso

这样一个新湍流模型的动态库 就“哦可”拉!

下面你可以试试看这个冒牌的V2F模型,该咋整呢?? 接下去看...

请到$FOAM_RUN/tutorials/simpleFoam/pitzDaily/constant下

修改RASPorperties文件

如何在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中。

现在新的边界条件应该可以正常运行了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11618327.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存