U*sin(t)边界条件
-
@李东岳 多谢解释,就是说“time”这个变量是数据库db()里的,关于db()的话是不是就不是Openfoam的范畴了?而是C++的内容?还有就是,这里的name dummy的用法是什么呢?
-
@李东岳 您好,我这个地方还有一个问题,在internalField 设置是uniform (0,0,0)的时候用这个代码没有问题,但我把一个已经算出的速度场file代替这个(0,0,0)的时候还用这个codedFixedValue就会出问题,错误提示好像是跟internalField相关,请问您知道这可能是什么原因吗?多谢
-
@xiaofenger 你把$internalField 直接写成uniform (0 0 0)不就好咯
-
如果我想直接设置速度场(Usin(5),Ucos(5),0),U是一个定值,也必须写成这么复杂的形式吗
-
@东岳 版主您好,我想设置入口速度具有一定的入射角度,修改现有的算例,原始版本:
internalField uniform (25 0 0); left { type freestream; freestreamValue uniform (24.8 3.16 0); }
仿照您给的例子改成:
internalField uniform (25 0 0); left { type freestream; name dummy; code #{ const scalar& angle = 10*3.14/180; //rad const scalar& U_ref = 25; //m/s operator==(vector(U_ref*cos(angle),U_ref*sin(angle),0)); #}; freestreamValue $internalField; }
我设置的角度似乎没有什么影响
-
李老师,请问计算域的速度场可以设置成时间的函数吗?比如经典的两相流算例:气泡在旋涡作用下变形,旋涡强弱和方向随时间变化的
-
@东岳
-
可以用一个名叫groovyBC的第三方插件,自由定义边界条件
-
@chengan-wang
你的最后面的代码有误,这样改:internalField uniform (25 0 0); left { //type freestream; type codedFixedValue; name dummy; code #{ const scalar& angle = 10*3.14/180; //rad const scalar& U_ref = 25; //m/s operator==(vector(U_ref*cos(angle),U_ref*sin(angle),0)); #}; freestreamValue $internalField; }
-
@李东岳 在 U*sin(t)边界条件 中说:
我刚开始学OpenFOAM,我没在用户手册里看到怎么样把速度的边界条件设成time dependent的,比如我要wall velocity 是U*sin(t),这个样子的?能麻烦你告诉我一下实现这个的函数吗?
inlet { type codedFixedValue; name dummy; code #{ const scalar& time = this->db().time().value(); operator==(vector(2.0*sin(time),0,0)); #}; value $internalField; }
请参考
李老师您好,我看过您在另一个帖子提到的“合理调节上部来流速度使浮升气泡保持在一个相对静止的位置”后,我想复现您说的内容,即:求解域的速度进口的速度大小根据上一个时间步的气泡速度自动调节。目前的思路是:采用function在算例文件夹下写出一个气泡速度Ub,再在0/U中采用include将气泡速度Ub引入边界条件中进行操作。但在实际操作过程中发现,include只会在计算第一步加载,并不会在每一个时间步后加载,导致速度进口大小并未实现自动调节。请问李老师您有没有好的思路可以实现边界条件的实时加载和自动调节哇
18/20