@唐唐唐呜呜 把需要的部分提取出来后,再用Angular periodic filter,选好旋转轴和角度就可以。
比如:wedge.foam—>iso valume —> Angular periodic filter—>Z轴,间隔为X度 —>apply就可以
Latest posts made by Prometheus10
-
RE: 【求助帖】2D轴对称楔形模型局部加密refinemesh时,在对称轴位置网格出现不均匀现象
-
RE: 关于wedge边界的使用
@韬智tz
我手里有个现成的一个topsetDict,具体的各行作用暂时回答不上,要不你先试一下:set c0; coordinateSystem global; globalCoeffs { tan1 ( 1 0 0 ); tan2 ( 0 1 0 ); } patchLocalCoeffs { patch outside; // Normal direction is facenormal of zero'th face of patch tan1 (1 0 0); tan1 (0 0 1); } directions ( tan1 normal ); useHexTopology yes; geometricCut no; writeMesh no;
-
RE: 关于wedge边界的使用
@韬智tz
你好!韬智tz
在判断问题点之前,先咨询一下:你的命令顺序是怎么样的?
是不是每次直接就接着做了refineMesh?
还有加密的方向对不对?
如果方便的话 给看一下代码和命令行 -
RE: 关于wedge边界的使用
@韬智tz 你好!韬智tz
我用boxToCell 能加密成功
不妨一试:actions ( { name c2; type cellSet; action new; source boxToCell; box (0 -0.01 0) (0.002 0.01 0.0075); } );
-
RE: interFoam修改随时间变化的重力
@xpqiu xpqiu老师您好! 感谢您的回复,我大致明白了您对前两个方式的解释!谢谢您!
至于在第三种方式中,提到的 "改了interIsoFoam.C旁边的UEqn.H"
是指的UEqn.H和interIsoFoam.C文件都在同一目录下,即:~/applications/solvers/multiphase/interIsoFoam目录。以后发帖我一定多多注意自己的措辞,耽误了您的时间,同时为上一次打错了您的昵称抱歉。
再次谢谢您xpqiu老师 -
RE: interFoam修改随时间变化的重力
@xpqiu xpqiux老师您好!
感谢您的回复,我现在才意识到了自己在这个环节的表述有点模糊。
我陈述的意思就如同您说的,。
我用上述三种方式改变重力之后,得到的流场结果依然还是g在 [0, -9.81,0]的流场结果,也就意味着我更改重力的三种方式并没有生效,所以一直很苦恼。再次感谢您的回复!
CFD红皮书目前才看到第九章,编程还没开始看,所以一直不能找到问题在哪,希望您指点!
-
RE: interFoam修改随时间变化的重力
@李东岳
东岳老师您好!因为对OpenFOAM的编程还不是很熟悉,目前我通过修改interIsoFoam做了三种尝试,想得到重力能随时间变化的效果,比如[g=sin(2 * M_PI * runTime.value)]。
过程中,我拷贝并修改~/application/solvers下的interIsoFoam文件夹后,将其命名为新的编译器,例如newinterIsoFoam。接下来陈述的三种方式都顺利编译成功,运行之前controlDoct我也有检查。
随后,我用damBreak案例来观察调整前后的情况,发现三种方式都没有使重力发生改变。依然是保持constant文件夹下的g [0, -9.81,0],能否请您再出山,指点指点又菜又爱玩OpenFOAM的我,谢谢东岳老师!
我用的版本是dyfluid.com无私的OpenFOAM-v1812
第一种尝试:
按照您在本贴中的上一次提示,我将interIsoFoam.C的while (pimple.loop())下添加代码如下:起始于interIsoFoam.C 110行~ // --- Pressure-velocity PIMPLE corrector loop while (pimple.loop()) { g.component(1).value() = (-1)*runTime.value(); //***新加内容*** if (pimple.firstIter() || moveMeshOuterCorrectors) .....
我从代码读出的效果应该是,Y轴负方向的值会随着pimple.loop的进行,g值从[0, 0, 0]变为[0, -2, 0],但运行之后,依然是保持constant文件夹下的g [0, -9.81,0]。
第二种尝试:
因为v1812现在的readGravitationalAcceleration.H好像 和数字版本 有一些不同v版本的readGravitationalAcceleration.H是: Info<< "\nReading g" << endl; const meshObjects::gravity& g = meshObjects::gravity::New(runTime);
数字版本的readGravitationalAcceleration.H是: Info<< "\nReading g" << endl; uniformDimensionedVectorField g ( IOobject ( "g", runTime.constant(), mesh, IOobject::MUST_READ, IOobject::NO_WRITE ) );
我将数字版本的readGravitationalAcceleration.H,复制到v1812上也能正常编译通过,通过您在另一篇帖子的回复--定义加速度的phi
我对照着做了以下修改:Info<< "\nReading g" << endl; uniformDimensionedVectorField g ( IOobject ( "g", runTime.constant(), mesh, IOobject::MUST_READ, IOobject::NO_WRITE ); while (piso.loop()) //***新加内容*** { g.component(1).value() = (-1)*runTime.value(); //***新加内容*** } );
运行之后,damBreak依然是保持constant文件夹下的g [0, -9.81,0]
第三种尝试:
我照着另一份帖子说的按照改UEqn.H的方式引入附加体积力,改了interIsoFoam.C旁边的UEqn.HMRF.correctBoundaryVelocity(U); # define omega 2 //***新加内容*** const dimensionedVector mySource("mySource", dimensionSet(1,-2,-2,0,0,0,0), 100*Foam::sin(M_PI*runTime.value()*omega)*vector(0,1,0)); //***新加内容*** //我粗略的考虑了水密度为1,因此直接把体积力的量纲用到了这里 fvVectorMatrix UEqn ( fvm::ddt(rho, U) + fvm::div(rhoPhi, U) + MRF.DDt(rho, U) + turbulence->divDevRhoReff(rho, U) == fvOptions(rho, U) + mySource //***新加内容*** );
运行之后,damBreak依然是保持constant文件夹下的g [0, -9.81,0]。
实在是想了好久,三种方法都不行,当场心情就像溃坝一样damBreak
!
请东岳老师出山!
-
不同求解器下的进气孔口constantAlphaContactAngle设置
各位大佬Cfders大家好!
我调用了第三方提供的求解器,但是在设置相同的接触角条件后,第三方求解器算得的结果从一开始计算后底部就总会呈现薄片状,而interFoam和interIsoFoam就不存在这类情况。
这个薄片状会在我搭配自适应网格计算过程中突然出现部分点的压力值突变,导致计算好的结果马上就崩掉。
麻烦各位大佬路过时瞧一瞧,给新手指点一二。谢谢大家{ type constantAlphaContactAngle; theta0 20; limit Gradient; value uniform 0; }
interIsoFoam:
interFlow :