如题,想关闭人工对流项,看看扩散情况,请问具体在哪个位置,alphaEqn.H看不太懂
danao
帖子
-
-
@danao 要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要要
-
我要C币!!!
-
在v1812里,使用了 cyclic boundary
preservePatches (LEFT RIGHT) (TOP DOWN);
decompose时报错:
--> FOAM Warning : Using 'preservePatches' constraint specification. This constraint keyword is deemed to be 54 months old. --> FOAM FATAL IO ERROR: Entry 'preservePatches' has 4 excess tokens in stream 8(( LEFT RIGHT ) ( TOP DOWN ))
怎么回事
-
@aiweimo 解决了!万分感谢啊!
-
动画的每一帧range的最大值随时间变化。保存出来的动画只是第一步时刻的范围最大值。
paraview把范围上限设置成全过程的最大值?(因为我也不知道整个过程的最大值是多少。。自定义一个范围,可能会丢失实际的最大值) -
@东岳 要判断alpha2是否大于0.5,只能用forAll了啊?。。刚试了一下,好像volScalarField不能进行布尔运算。
-
@东岳 必须要循环吗?太慢了啊。。不能用三目运算符啊
-
@东岳 非常感谢!还想请教一下,我仿写了个判别条件:
volScalarField test("test", alpha2=0?0:1);
报错:
error:invalid use of void expression
这是哪错了?
-
@东岳
ceil是向上取整。换个例子 ,VolScalarField A=max(0.5,alpha2),也是同样的错误。求救! -
定义一个标量场,赋值为ceil(alpha2),报错
cannot convert VolScalarField to double...该如何解决啊?
-
自定义了Sb,防止越界,对边界的值进行修正:
forAll(Sb.boundaryField(), patchI) { forAll (Sb.boundaryField()[patchI],facei) { if(Sb.boundaryField()[patchI][facei] < 0.001) { Sb.boundaryField()[patchI][facei] = 0.001; } } }
wmake失败:
error: assignment of read-only location ‘(&(& Sb.Foam::GeometricField<Type, PatchField, GeoMesh>::boundaryField<double, Foam::fvPatchField, Foam::volMesh>())->Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::Boundary::<anonymous>.Foam::FieldField<Foam::fvPatchField, double>::<anonymous>.Foam::PtrList<Foam::fvPatchField<double> >::<anonymous>.Foam::UPtrList<T>::operator[]<Foam::fvPatchField<double> >(patchI))->Foam::fvPatchField<double>::<anonymous>.Foam::Field<double>::<anonymous>.Foam::List<double>::<anonymous>.Foam::UList<T>::operator[]<double>(facei)’ Sb.boundaryField()[patchI][facei] = 0.001;
错在哪里啊?
-
如题。
-
源项改为显式可以计算,但结果不太对。
-
在interFoam方程加入一个加速度aB.
volVectorField aB ( IOobject ( "aB", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE ), mesh, A*2*pi/T*Foam::sin(2*pi/T*runTime.value())*vector(1,0,0) );
fvm::ddt(rho, U) + fvm::div(rhoPhi, U)+... fvm::Sp(rho, aB) == fvOptions(rho, U)
一开始计算就报错:
incompatible fields for operation [U]+[aB]
请问该如何处理?
-
@东岳 万分感谢!
-
在UEqn.H中有:
(mixture.surfaceTensionForce()- ghf*fvc::snGrad(rho)- fvc::snGrad(p_rgh)) * mesh.magSf();
surfaceScalarField ghf("ghf", (g & mesh.Cf()) - ghRef);
g的类型是uniformDimensionedVectorField。若采用: volVectorField B,公式“𝑩∙𝒉−𝒉∙∇𝑩”该怎么写?
-
@东岳 funkySetFields似乎有问题,wall经过funky后从noSlip变成了zerogradient,会让结果发散。这个问题有解决办法吗?或者不用funky? 需要将速度场初始化为U=(0,0,1)^mesh.C()。
-
@东岳 用来初始化速度场,按照公式是非均匀的。
-
如题。
-
@东岳 非惯性坐标系啊,体积力与每个网格的具体位置有关,这样就不用动网格了
-
@东岳 @wwzhao ,抱歉,忘了格式了
volVectorField g ( IOobject ( "g", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE ), g=关于网格空间坐标xy的函数 ); dimensionedVectorField g = fvc::interpolate(g,"g"); phig=g & mesh.Sf()
-
@wwzhao 那应该怎么写啊啊。。。
-
重力g的phi可以写成phiG=g & mesh.Sf(),其中g是uniformDimensionedVectorField。如果g变成一个空间上不均匀的加速度场,类型变成volVectorField,这时候的加速度的phi该如何写??
-
写成fvm::Sp()?
-
@东岳 是的,我要用到坐标三个方向的具体数值,标量
-
@史浩 我试了,提示[celli]没声明,后来我用的mesh.C().component(0),这个是个volScalarField 类型,有单位m
-
@Dingcy 我要编写源项,公式里需要网格坐标xyz的值
-
@史浩 mesh.C().component(0),是这个吗?我试了好像还是volVectorField 类型,而不是一个scalar
-
@史浩 那怎么才能得到网格xyz坐标的标量值?
-
定义了一个矢量,类型为dimensionedVector,=网格坐标*vector(1,0,0)。发现mesh.c()是一个scalerField,所以编译就报错“error: conversion from ‘Foam::tmp<Foam::GeometricField....". mesh.c()这里应该如何修改?
-
interFoam添加体积力,想通过修改重力,得到一个随时间和位置变化的重力。而在"readGravitationalAcceleration.H"里面,g的类型是 uniformDimensionedVectorField,而g与mesh.C()有关,所以编译时报错。
把类型改为DimensionedVectorField,报错:error: ‘DimensionedVectorField’ was not declared in this scope。改为volVectorField, 报错:‘Foam::tmp<Foam::Field<double> >’ is not derived from ‘const Foam::dimensioned<Type>’ ghf = (g & mesh.Cf()) - ghRef; ghRef这一项被标红了。应该改为什么类型才好? -
@东岳 好的,多谢李老师!
-
看到interFoam的解释里速度U没有提到是气相还是液相,还是像密度粘度一样是两相的混合?而且方程右边只有表面张力,比如气液之间的拖曳力没有体现啊。还有对比了interFoam和icoFoam,interFoam方程左边第三项剪切力是扩散项吗?
-
@东岳 谢谢东岳老师! 终于发现问题了,速度的模也是有单位的。。。在前面乘一个系数1s/m,就不报错了。我用的OFv6。
-
添加源项:Sp(1/(2-mag(U)), U)可以编译,但是一开始计算,就提示LHS和RHS量纲不同。去掉mag(U)就可以计算。请问mag(U)是速度的模吗?还具有单位??
-
如题...
-
@史浩 恩恩,是的,vof文件都得拷进去,感谢感谢
-
@东岳 太厉害了,这次不报错了,万分感谢
-
@史浩 ,多谢。我加的源项有粘度这个系数,写了mu_, 然后wmake,提示mu_ not in this scope。拷出来的interFoam sovler的H文件里没有mu_,该怎么办啊
-
小弟想在interFoam方程中加入一个含有粘度的项,修改拷出来的interFoam,发现createFields.H中并没有东岳流体里讲到的计算平均粘度那段代码,整个multiphase solvers 里面也没看到计算粘度的H文件,也没找到incompressibleTwoPhaseMixture.H,难道是版本的问题?用的OF6.0
-
在wall边界里找到了constantAlphaContactAngle类型,这个类型能同时满足无滑移边界吗?
-
向大佬们请教两个问题:
1.如何得到流场的平均速度?
2.VOF模型中的接触角在哪里修改?
谢谢! -
@东岳 谢谢李老师!这个是指定流场域的平均速度吗?能否指定压差呢?
-
用四面cyclic条件模拟二维圆柱流场,想用添加固定压差的方式让流场流动,simpleFoam求解。采用的fvOptions格式和前辈完全一样,但是运行不了,报错如下:keyword selectionMode is undefined in dictionary....From function const Foam::entry& Foam::dictionary::lookupEntry(const Foam::word&, bool, bool) const
in file db/dictionary/dictionary.C at line 566.,是不是还有没考虑的地方?
参考:http://www.cfd-china.com/topic/280/动量方程如何加入加压力梯度源项 -
用的VOF,搜了一下,因为时间步长小了,所以库朗数小了,导致收敛速度慢了?求指导
-
同样的case,只把步长调小了,其他不变,发现一次步长需要的计算时间反而变得很长。。这合理吗?
-
@东岳 好的,谢谢。设为层流的情况下,网格数量必须要求非常多,才等于DNS,是这样理解吗?
-
@东岳 https://www.sciencedirect.com/science/article/pii/S0009250913005745
网格尺寸有标准吗?忘了在哪里看到,数量上每个方向得是2的n次幂来着
interFoam相方程里人工对流项在哪里?
C币运行机制测试
C币运行机制测试
v1812 decmopose
paraview动画坐标
paraview动画坐标
ceil(alpha2)
ceil(alpha2)
ceil(alpha2)
ceil(alpha2)
ceil(alpha2)
forAll boundary
paraview如何定义与密度时间有关的物理量并显示云图?
incompatible fields for operation
incompatible fields for operation
改写interFoam中的ghf
改写interFoam中的ghf
OF6可以用funkySetField吗?
OF6可以用funkySetField吗?
OF6可以用funkySetField吗?
OF6可以用funkySetField吗?
定义加速度的phi
定义加速度的phi
定义加速度的phi
定义加速度的phi
求解过程中出现的错误
如何获得网格坐标?
如何获得网格坐标?
如何获得网格坐标?
如何获得网格坐标?
如何获得网格坐标?
如何获得网格坐标?
interFoam修改随时间变化的重力
VOF动量方程中的速度指的是哪一相?
VOF动量方程中的速度指的是哪一相?
源项系数是速度的绝对值
源项系数是速度的绝对值
自定义求解器如何添加动网格功能?
interFoam计算粘度
interFoam计算粘度
interFoam计算粘度
interFoam计算粘度
OF后处理平均速度与接触角修改
OF后处理平均速度与接触角修改
采用fvOptions添加动量源项
采用fvOptions添加动量源项
一次步长运算时间
一次步长运算时间
DNS求解VOF
DNS求解VOF