关于codedFixedValue使用
-
大家好,我使用codedFixedValue遇到了一个问题
inlet { type codedFixedValue; value uniform 0; name codeinlet_air; code #{ const vectorField& Cf = patch().Cf(); scalarField& field = *this; scalar D = 0.0252; scalar ymax = 5.82*D; forAll(Cf,faceI) { if ( Cf[faceI].y() > ymax ) { field[faceI] = 1; } } #}; }
我定义了ymax,之后如果我使用if ( Cf[faceI].y() > ymax ) 设置相分数,时间步长越来越小。但如果改成if ( Cf[faceI].y() > 0.1 ) 一个具体数值,情况就好很多。我的使用方法是否有问题呢?
还有我是否可以把ymax定义到一个独立的文件中,然后#include "../include/initialConditions",直接引用ymax,我尝试了一下不好用。
谢谢大家
-
@chengan-wang 我也不是太懂您这个方面的,但是从编程角度来看,为什么您不直接定义标量ymax的值呢,而是先定义一个D的值呢
-
@chengan-wang 在 关于codedFixedValue使用 中说:
我定义了ymax,之后如果我使用if ( Cf[faceI].y() > ymax ) 设置相分数,时间步长越来越小。但如果改成if ( Cf[faceI].y() > 0.1 ) 一个具体数值,情况就好很多。我的使用方法是否有问题呢?
理论上不应该有任何问题