请教一个入口非均匀风速设置的问题
-
想把入口设置成大气边界层,
对于高度z小于300,速度x=20*(z/25)^0.15,
高度300=<z<1000,x=29.03
(整个流场高度就是1000m,所以这里就有一个小疑问,需不需要写上<1000的条件,Q1)代码我是先再论坛里搜了一下,然后自己琢磨的,没有写过代码所以希望哪位大神能指点一下
dimensions [0 1 -1 0 0 0 0]; internalField uniform (0 0 0); boundaryField { INLET { type codedfixedValue; value uniform (x 0 0); name uuu;//我看有的帖子里说name是一定要有的,但是后面的可以随便写,是这样的么Q2;还有的写的是redirectType XXX;,所以也想请教一下有什么区别,还是说是不一样的情况Q3 code #{ const fvPatch& boundaryPatch = patch();//这个意思是获取inlet这个边界面么Q4 scalar z = boundaryPatch.z();//这里我是想定义高度z,但是不知道怎么定义,就这样写的,感觉肯定不对Q5 forAll( patch()) if z<300 x==20*(z/25)^0.15; if 300=<z<1000 x=29.03 #}; } }
希望有大佬能指点一下,非常感谢
-
发现用代码高亮反而让人看的不方便
dimensions [0 1 -1 0 0 0 0];internalField uniform (0 0 0);
boundaryField
{
INLET
{
type codedfixedValue;
value uniform (x 0 0);
name uuu;//我看有的帖子里说name是一定要有的,但是后面的可以随便写,是这样的么Q2;还有的写的是redirectType XXX;,所以也想请教一下有什么区别,还是说是不一样的情况Q3code #{ const fvPatch& boundaryPatch = patch();//这个意思是获取inlet这个边界面么Q4 scalar z = boundaryPatch.z();//这里我是想定义高度z,但是不知道怎么定义,就这样写的,感觉肯定不对Q5 forAll( patch()) if z<300 x==20*(z/25)^0.15; if 300=<z<1000 x=29.03 #}; }
}
-
以前没学过c+,这几天看了看琢磨一下,
最后我是这样设置的INLET { type codedFixedValue; value uniform (0 0 0); name IN; code #{ const vectorField& Cf = patch().Cf(); vectorField& field = *this; forAll(Cf,faceI) { if( Cf[faceI].z()<300) { field[faceI] = vector(20*pow((Cf[faceI].z()/10), 0.15), 0, 0); }else{ field[faceI] = vector(30, 0, 0); } } #};