@wangfei9088 感谢老师,我参照您的思路捋了一下,把相关类实例化之后能够使用HE函数计算了,但是还发现一个问题,我在求解器中通过其它计算更新了T之后想对he赋值,但一直赋值不上,尝试了直接=和forAll都不行,是因为he指向的thermo.he()会在热物理库调用中自行赋值么,请问您知道对he赋值的正确方法么?
huangyuhui723
帖子
-
关于在求解器中使用热物理库中的函数 -
关于编译动态库后在求解器中使用报错@学流体的小明 感谢老师,我找时间试试看
-
关于在求解器中使用热物理库中的函数各位老师好,我目前在修改一个求解器,想要在求解器中使用热物理库中的HE函数对he的边界值进行更新,我在thermoI.h中看到了这样的定义:
template<class Thermo, template<class> class Type> inline Foam::scalar Foam::species::thermo<Thermo, Type>::HE(const scalar p, const scalar T) const { return Type<thermo<Thermo, Type>>::HE(*this, p, T); }
和heThermo.c里这样的使用格式:
&MixtureType::thermoMixtureType::HE
看的有点懵,不知道应该以什么样的格式来调用这个函数,希望有知道的老师能解答一下疑惑,感谢。
-
关于编译动态库后在求解器中使用报错我初步解决了这个报错,在这里分享一下。我看了一下solidThermo里只引用了basicThermo.h,因此没有对里面的类进行定义,我直接把basicThermo.c的代码复制到了basicThermo.h里,然后再编译就没有报错了,求解器目前也可以运行,不知道有没有完全解决问题。
-
关于编译动态库后在求解器中使用报错@学流体的小明 老师您好,您是说链接basicPorousThermo的动态库么?我这个是参考了原来的solidThermo和basicThermo,原本的basicThermo是没有编译成动态库而是basicThermo.h直接被solidThermo引用了,所以我也是这么操作的,我看本来的basicThermo没有被编译成动态库所以我也没敢乱操作。我试了试原本的basicThermo类也是这么搞的但是不会报错,是在后续代码中把这个类和函数定义了么?但是我暂时也没有找到哪里定义了这个类和函数。
-
关于编译动态库后在求解器中使用报错各位老师好,我这边想要新建一个固体热物理库,于是在已有的solidThermo上修改。目前就只把solidThermo和basicThermo的名字及相关变量改成了porousThermo和basicPorousThermo,动态库的编译成功了,但是在求解器中编译报了如图undefined reference的错。并且在只修改了solidThermo的时候求解器也是可以编译的,网上查了一些资料也没找到问题,希望有老师帮忙解答,非常感谢。(由于电脑是离线的,所以只能拍照上传代码,请包涵)
以下为求解器的options文件。
-
关于多域求解NS方程和Darcy方程的边界耦合问题@Do1975 确实,可能还是看具体需求场景,我这是一方面DBS方法速度提升好像不多,然后在AB区域交界附近流场会出现间断,我没解决这个问题,就没用了
-
关于多域求解NS方程和Darcy方程的边界耦合问题@Do1975 不好意思,我当时也没有仔细推导 ,这么一说确实有一点不理解这部分。我当时尝试使用DBS方程后发现不太符合我的算例,然后我还是使用了多域求解的方法。
-
关于多域求解NS方程和Darcy方程的边界耦合问题@李东岳 我大概了解了李老师,我去尝试看看,非常感谢。
-
关于多域求解NS方程和Darcy方程的边界耦合问题@李东岳 李老师,非常感谢您的解答,我去看了您说的内容,请问您的意思是直接自行植入Darcy-Brinkman-Stokes 方程,然后在空腔和多孔介质区域设置不同的孔隙率么(空腔处孔隙率设置为1,多孔介质处孔隙率设为材料实际的孔隙率)?如果是的话,我可能还有一个问题,那么在程序实现中如何设置空间分布不均匀的常数(孔隙率)呢?方便的话希望您指点一下,非常感谢。
-
关于多域求解NS方程和Darcy方程的边界耦合问题各位老师好,我已使用OpenFOAM一段时间,但是对底层算法和程序了解有限,最近想要实现一个多域求解的问题,但是有些问题无法想通因此发帖求助。
该算例情况如下:
上图为二维计算域示意图,区域A为空腔,初始时刻压力较高;区域B为多孔介质区域,初始时刻压力较低,外部为出口。
我想模拟区域A的泄压过程,且不想使用OF自带的porous模块,因为该模块直接在方程中添加源项,仍需求解NS方程,计算复杂,求解时间较长。因此想直接在区域A求解NS方程,在区域B求解Darcy方程,并在交界面处耦合速度和压力。
在论坛中搜索发现 https://www.cfd-china.com/topic/779/求助-如何使用openfoam进行多孔介质内数值模拟 该算例与我的问题类似,但是仍无法解决我的问题,我目前有两种思路想询问各位老师是否可行:
1、魔改chtMultiRegionFoam求解器,将区域B的热传导方程改为Darcy方程,将耦合变量改为速度和压力;
2、新编写求解器,直接在一个求解器中分两步分别计算两个算例(区域A的NS方程和区域B的Darcy方程),每一个时间步计算完后映射更新交界处的速度和压力。
想请教各位老师以上思路的可行性和实现难度,如有更多思路和建议就更加感谢了。
谢谢,麻烦各位老师不吝赐教。