Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
各位大神我的程序里有这么一个语句 sens=(U&V)*mesh.V(),但是mesh.V()似乎是dimensionedscalar 类型,sens是volScalarField类型的,编译时会报错,求各位大神支支招。
sens=(U&V)*mesh.V()
mesh.V()
dimensionedscalar
sens
volScalarField
你的错误不是这个,mesh.V()是scalarField,把你的log贴一下看看
scalarField
@Mr.Ye 对啊,我也想问,如何将dimensionedScalar 转为volScalarField?另外,我想问下,这个可以转吗?
@李东岳 是下面这段代码
没有mesh.V()的时候可以正常编译和计算 加上之后会出现下面的情况
谢谢东岳老师
转换可以这么写: 比如你有个dimensionedScalar nu 你在声明volScalarField的时候:
volScalarField nuVol ( IOobject ( ) mesh//替换为nu );
@Mr-Ye mesh.V()是scalarField,fvc::是volScalarField,因此类型不匹配。 你的变量需要乘网格体积?我建议你采用forAll循环的方式计算。
fvc::
forAll
@李东岳 谢谢大神,我是需要计算出每一点的sens,我试试forAll循环
@李东岳 可以用forAll 实现变量跟网格体积相乘,mesh.V是不是没有量纲? sens= (Ua & U);
forAll(sens, celli) { sens[celli]=sens[celli]*mesh.V()[celli]; }
mesh.V()的单位是m³