@LYT 我有个问题要请教你,在更新相分数场的时候就要用到dgdt,此时dgdt的表达式就是setfields中的形式,但是这样的话跟公式是对不上的,这个是什么原因呢,谢谢!
杨英狄 发布的帖子
-
RE: 关于compressibleinterFoam中的非线性源项dgdt的请教
-
OpenFOAMoam7虚拟机求解器编译报错
在OpenFOAM7虚拟机上对求解器进行编译,发现只要将求解器从solvers文件夹换到其他文件夹就好编译出错,报错内容如下:
如果有哪位知道原因可以请教一下吗,谢谢! -
RE: OpenFOAM上实现VOF-DPM
@杨英狄 就是说想以这样的方式注入拉格朗日粒子:每个时间步注入流场的粒子的数量、位置都与当前时间步的流场有关,这样的注入方式怎么实现呢?
-
OpenFOAM上实现VOF-DPM
如果想用OpenFOAM实现一个多尺度模型,即比如利用interfoam计算气液两相流,当流场中某个气泡的尺度太小时,则转化为拉格朗日粒子。
那么该如何实现在流场中某一位置注入拉格朗日粒子呢?谢谢! -
interpolate()函数怎么用
如果已知流场内某一点的坐标(a,b,c),想通过插值获得这一点的流场物理量,可以使用interpolate()函数,这一函数的定义如下:
template<class Type> Type Foam::AveragingMethods::Basic<Type>::interpolate ( const barycentric& coordinates, const tetIndices& tetIs ) const { return data_[tetIs.cell()]; }
代码中coordinates、tetIs分别表示什么呢?
如果已知点(a,b,c)如何获取coordinates、tetIs呢?
谢谢! -
RE: DPMFoam求解器加颗粒导致发散
@疏影横斜水清浅 这种注入方式引起数值不稳定我也遇到过,我是把入口边界条件改成卷吸边界条件了,可能在物理上不太合理,但是能够保证数值稳定。
-
气相粒子碰撞参数设置
各位好
若使用DPMFoam对气相粒子在液相中的行为进行计算
气相粒子的碰撞参数取多少较为合适呢collisionModel pairCollision; pairCollisionCoeffs { maxInteractionDistance 0.0025; writeReferredParticleCloud no; pairModel pairSpringSliderDashpot; pairSpringSliderDashpotCoeffs { useEquivalentSize no; alpha 0.02; b 1.5; mu 0.10; cohesionEnergyDensity 0; collisionResolutionSteps 12; }; wallModel wallSpringSliderDashpot; wallSpringSliderDashpotCoeffs { useEquivalentSize no; collisionResolutionSteps 12; youngsModulus 1e8; poissonsRatio 0.23; alpha 0.01; b 1.5; mu 0.09; cohesionEnergyDensity 0; }; U U.air; }
谢谢各位!
-
计算异常中断
各位好,想请教一下,我在使用DPMFoam进行计算时,计算异常中断了。
在计算完速度之后,计算就停止了。
算例中fvSolution设置如下:solvers { "(p|kinematicCloud:theta)" { solver GAMG; tolerance 1e-06; relTol 0.01; smoother GaussSeidel; } "(p|kinematicCloud:theta)Final" { solver GAMG; tolerance 1e-06; relTol 0; smoother GaussSeidel; } "(U.air|k|omega)" { solver smoothSolver; smoother symGaussSeidel; tolerance 1e-05; relTol 0.1; } "(U.air|k|omega)Final" { solver smoothSolver; smoother symGaussSeidel; tolerance 1e-05; relTol 0; } p_rgh { solver GAMG; tolerance 1e-8; relTol 0.1; smoother DICGaussSeidel; maxIter 50; }; p_rghFinal { solver PCG; preconditioner { preconditioner GAMG; tolerance 1e-6; relTol 0; nVcycles 2; smoother DICGaussSeidel; }; tolerance 1e-7; relTol 0; maxIter 50; }; Phi { $p_rgh; relTol 0; }; } PIMPLE { nOuterCorrectors 1; nCorrectors 2; momentumPredictor yes; nNonOrthogonalCorrectors 0; pRefCell 0; pRefValue 0; } potentialFlow { phiRefCell 0; phiRefValue 0; nNonOrthogonalCorrectors 3; } relaxationFactors { }
有人遇到过类似的问题吗
谢谢! -
DPMFoam 压力场异常
采用DPMFoam计算颗粒流,出现压力场异常(比如产生非常剧烈的负压),但是速度场正常。
DPMFoam得到的压力场异常这件事,之前论坛中有提及。
想请教一下各位,这个问题该如何解决呢?
谢谢各位! -
kinematiccloud()函数添加新变量报错
各位好,想请教一下:
我在kinematiccloud()函数中添加了两个新变量:
但是编译时候报错,“ default argument missing for parameter”
这个怎么解决呢,谢谢各位! -
KinematicCloud.C中输出计算时间
各位好
我在KinematicCloud.C中如果想在一个函数中输出计算时间:
scalar t0 = runTime.elapsedCpuTime();
但是编译报错,runtime没有声明
我该怎样解决这个问题呢
谢谢各位! -
RE: 基于扩散的方法解决粒子大于网格
@上级 你好,可以请教一下,肖恒老师的基于扩散方程方法你在OpenFOAM中实现了吗?可以请教你一些相关问题吗?或者方便提供一下代码吗?万分感谢1
-
RE: 求解器中嵌入求解器
@李东岳 李老师好,我想实现的是这样一个事情,如图:
在每一个计算时间步下,都计算一次扩散方程:
从0求解至1,这个扩散方程的时间步是1/3
可以请教李老师一下,这种有什么解决方法吗?
非常感谢! -
RE: 粒子库的move函数
@星星星星晴 你好,是这样的。我的根本目的是做一个新的CloudFunctionObjects,就像particleerosion或者particleTrap这种。
我发现particleTrap里面有postface函数。我注意到这个postface函数在kinematic.C文件里的move函数中被调用了。所以我就想把我的CloudFunctionObject里的could.functions().函数也加在move里面。(不太清楚particleTrap里面的postface函数与move函数里面调用的postface函数是不是一个东西)
非常感谢! -
RE: 粒子库的move函数
@星星星星晴 非常感谢!我是做了一个cloudfunction,类似于move里面调用的postface函数,我想让我的cloudfunction被调用,所以打算也放在move里面
-
RE: 粒子库的move函数
@星星星星晴 你好,想请教一下。我添加了一个函数,想在move里面调用,但是这个函数需要获取流场边界网格信息,所以变量里包括CloudType&owner 。但是,move函数里面没有这个变量。所以我需要模仿红框里面的代码,让我可以在move函数里面使用CloudType&owner。但是不知道该怎样模仿。不知道可否请教你一下。
谢谢! -
粒子库的move函数
各位好
请教一个代码知识
如下是kinematicparcel.C文件中的move函数
想请教红框里面的代码的含义
(我的理解是红框里的代码可以使得move函数中可以使用parcelType&p相关的变量比如p.cell(),不知道对不对)
谢谢各位 -
mesh类的调用
各位好
如下代码可以实现计算某一个边界面面积的功能
但是如果我现在无法调用mesh类,我是否可以手动对列表cPatch和magsf进行赋值来实现计算
谢谢各位 -
RE: 如何调用上一欧拉时间步的粒子信息
@星星星星晴 老师,比如当前时刻为4s,欧拉时间步是1s,我想在时刻为4s的时候调用时刻为3s的粒子属性。
我做的东西粒子半径是变化的,我需要用上一时刻的粒子半径一阶时间导数与当前时刻的粒子半径一阶时间导数进行比较。判断粒子的一些状态。
谢谢老师 -
如何调用上一欧拉时间步的粒子信息
各位好
OpenFoam中一个欧拉时间步deltaT包含若干粒子时间步dt
那么如何调用一个欧拉时间步之前的粒子信息呢,比如粒子速度
谢谢各位 -
RE: 如何获得边界patch面网格中心坐标?
@李东岳 李老师,我这个是在Particleerosion.C文件里面写的,因为也想计算粒子对壁面的某种作用,所以想对Particleerosion进行修改。这几行代码是添加在postPatch函数中的
-
RE: 如何获得边界patch面网格中心坐标?
@李东岳 李老师想请教一下,如果我直接使用mesh.Cf()函数,会报错说‘mesh’没有声明。
代码如下,我想获得某一个边界面的面网格坐标
谢谢李老师!
-
mesh.Cf()有关问题
各位好
我在粒子求解器里面做了一个东西
用来计算粒子与壁面每一个网格的距离,代码如下
编译的时候报了几个错误,想请教一下各位
错误1:
错误2:
错误3:
感谢各位 -
particle erosion函数
各位好
particleerosion函数计算粒子对流道的侵蚀作用,但是粒子在某一时间步是否与面patch相接触是如何判断的呢?
另外还想请教一下patchData函数是在哪里调用的呢?
这一点实在没有搞明白,感谢大家的帮助! -
如何将cloud中添加的新变量在结果文件中输出
各位好
仿照kinematiccloud中的函数Dij,写了一个新的函数Sum,用来计算当前时间步流场中所有粒子的某个属性之和(如直径之和)。
那么如果我想用DPMFoam求解器,并且想在最终的结果文件中将新添加的函数Sum的计算结果输出出来,应该怎么做呢?
这个函数输出的值应该算作粒子属性还是场的属性呢?
谢谢各位!