@bestucan 感谢,follow path 和follow data 都很好用
Prometheus10 发布的帖子
-
如何在paraview中将对象一直保持在视图窗口的中心?
东岳老师、各位大佬、CFDer:
大家新年好!
请问一下,如何在paraview中将对象一直固定在窗口中心?
因为在多个时间步播放后,气泡总是跑出paraview的窗口,我查了好久都没能找到怎么操作,目前每帧都是单独手点,能否有大佬指点一下,谢谢!
具体情况如下:这是初始时刻保持在中心的样子:
一定时间步之后就跑出paraview的视图窗口了
-
RE: 没有显卡的win系统电脑,是否根本无法打开Paraview5.10/5.11?
@李东岳 啊
,东岳老师,您这么一提醒我才发现自己没有去看paraview.org的Linux分页面,我之前心思一直都在paraview.org的win版本页面上
,再次谢谢东岳老师,抱歉又给您添麻烦了
。
-
没有显卡的win系统电脑,是否根本无法打开Paraview5.10/5.11?
各位老师大家好,课题组此前有一台服务器,完完全全是把经费全砸在了算力上,因此没有独立显卡,似乎集成显卡是只有16M
在win系统下,我从paraview.org下载了paraview5.10的exe版本和zip的免安装版本,打开之后都是直接无响应,然后约3s后直接闪退。
查询了各种办法,都尝试了,目前唯一可行的办法是,东岳老师dyfluid.com里的paraview5.6绿色版能在VMware中正常使用,还得是dyfluid!但是我因为处理ktv格式,似乎paraview5.10版本会更方便,但是没有找到相关的paraview5.10绿色版。
因此,有劳各位老师和大佬指点迷津,没有显卡,是否是我在win系统下Paraview无法打开和运行的根本原因?谢谢大佬!真心推荐大家,有机会有条件还是上dyfliud搞个塔式!架式!加特林!东岳老师的机器真的香。
-
RE: 【求助帖】2D轴对称楔形模型局部加密refinemesh时,在对称轴位置网格出现不均匀现象
@唐唐唐呜呜 把需要的部分提取出来后,再用Angular periodic filter,选好旋转轴和角度就可以。
比如:wedge.foam—>iso valume —> Angular periodic filter—>Z轴,间隔为X度 —>apply就可以 -
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 :
-
RE: 关于paraview的镜像后处理
@regina regina 前辈,您好!我还是没能成功用rotational extrusion把slice面旋转的实心的操作出来。
不管怎么样操作,rotational extrusion之后得到的都是只有个表面,但内部是空心的一个3维空壳子,而不是3维实心的。
能劳请您能再详细分享一下操作流程吗,如果您方便的话。谢谢您! -
RE: 【求助帖】2D轴对称楔形模型局部加密refinemesh时,在对称轴位置网格出现不均匀现象
@Yu_Tian 您好,Yu_Tian前辈,您是在blockMesh直接画出楔形的基础上再做的refineMesh吗?
我遇到了相同的问题。
如果可以的话,您能否分享下解决方案。谢谢~ -
WSL2上多版本OpenFOAM并存在mpirun的过程中的一种Process received signal问题
各位前辈大家好!
关注cfd中文网很久了,但自己一直在理论和实操方面资质尚浅,不能做什么贡献。
自己的WSL2上有多版本OpenFOAM并存,最近在mpirun的过程中遇到其中一类Process received signal问题。
提供一个解决办法,希望对他人有帮助。
问题如下:
比如我是OpenFOAM-v2012和OpenFOAM-9共存
启动终端默认加载v2012的bashrc
然后通过alias"of9"切换到数字版本下,此时mpirun -np 8 interFoam -parallel 会出现以下报错[node5:45736] *** Process received signal *** [node5:45736] Signal: Segmentation fault (11) [node5:45736] Signal code: (-6) [node5:45736] Failing at address: 0xb2a8 [node5:45736] [ 0] linux-vdso.so.1(__kernel_rt_sigreturn+0x0)[0x4000048f1500] [node5:45736] [ 1] /usr/lib64/libc.so.6(gsignal+0x38)[0x400007ed08f0] [node5:45736] [ 2] linux-vdso.so.1(__kernel_rt_sigreturn+0x0)[0x4000048f1500] [node5:45736] *** End of error message ***
解决方案为:让终端启动时默认加载OpenFOAM-9的bashrc,而不是先OpenFOAM-v2012再alias"of9"到数字版本。
这样做即使alias到v版本也不会有任何问题。祝顺利!
-
柱体+斜柱体,如何画高质量六面体网格?
各位前辈大家好!
我想了有一段时间了,都没有想到比较好的思路。请教各位前辈,如何画这种几何模型的网格,如何拆分块好一些?前提是想画出类似于blockMesh画单纯的圆柱体那样纯六面体的效果。
谢谢大家!
以下为模型大致示意图:
-
RE: 如何在区域内设置一个碰口
@zhouxu 您好!大佬,谢谢您的回复
我之前看boundaryField是需要在指定的边界上给定相体积分数和速度,但是我现在想要的入口是在区域内部,这个时候没有确切的边界可以指定 ,所以我就想是不是在internalFields里来达成。 -
如何在区域内设置一个碰口
各位大佬Cfders大家好!
前些日子看资料,如图中在边界处有一个喷水口,在0~0.2s内以固定流速向盒子内送水。
图1 边界送水图
这个喷水口是通过设置0文件夹下phase.water的boundaryField指定其左壁面的正方形区域内(z:0.4~0.6;y:0.5~0.7),在某时间内完成送水过程的(0s~0.2s)。代码如下:internalField uniform 0; boundaryField { leftWall { //type zeroGradient; type codedFixedValue; value uniform 0; name inletProfile2; //redirectType inletProfile2; //OF7 < code #{ const fvPatch& boundaryPatch = patch(); const vectorField& Cf = boundaryPatch.Cf(); scalarField& field = *this; field = patchInternalField(); //take value from initialization at the given boundary surface scalar minz = 0.4; scalar maxz = 0.6; scalar miny = 0.5; scalar maxy = 0.7; scalar t = this->db().time().value(); forAll(Cf, faceI) { if ( (Cf[faceI].z() > minz) && (Cf[faceI].z() < maxz) && (Cf[faceI].y() > miny) && (Cf[faceI].y() < maxy) ) { if ( t < 1.) { field[faceI] = 1.; } else { field[faceI] = 0.; } //field[faceI] = 1; } } #}; }
我现在想在区域内有一个假想面或者是假想点达到类似的功能(我想这应该是在internalField中完成)如图2,而不是像上述图1提到的在boundaryField边界上给定面。
图2 区域内假想的送水口图
尝试了在0文件下的phase.water的internalField做调整,但只能给定高度的初始流体如图3。
图3 通过internalField只做到了给定高度的水形成自由面
还是不太明白如何做到设定送水面和引入时间来控制送水,求大佬降临,救救菜鸟!