我懂了。 这里的diffusivity= nu()/Pr 对吧
chpjz0391
帖子
-
-
最近在把passive scalar项写进simpleFoam来算一个标量场。但是对于湍流对这个标量场的影响有一点疑问。
首先是标量场的方程,参考scalarTransportFoam方程如下:
fvm::ddt(T) + fvm::div(phi, T) - fvm::laplacian(DTt, T) == fvOptions(T)
然后在creatFields.H 里面定义湍流对其影响。公式参考如下
D = D_{molecular} + \frac{\nu_t}{Sc_t}代码如下:
Info<< "Reading diffusivity DT\n" << endl; dimensionedScalar DT ( transportProperties.lookup("DT") ); Info<< "Reading turbulent Schmidt number\n" << endl; dimensionedScalar Sct ( transportProperties.lookup("Sct") ); volScalarField DTt ( IOobject ( "DTt", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE ), nut/Sct + DT, nut.boundaryField().types() );
这里面Sct是Schmidt number, DT是 标量场的diffusivity
这也是目前我正在用的solver
但是网络还有另一种改法,不需要知道标量场的diffusivity,取而代之的是需要知道Prt 和Pr
标量方程改成如下:volScalarField kappaEff ( "kappaEff", turbulence->nu()/Pr + turbulence->nut()/Prt ); fvScalarMatrix DTEqn ( //fvm::ddt(DT) fvm::div(phi, DT) - fvm::laplacian(kappaEff, DT) == fvOptions(TS) );
DTEqn.relax();
DTEqn.solve();请问这两种有什么区别?为什么一个需要标量场的diffusivity 另一个不需要?
-
高,但不可控。很容易出现比较差的网格。
-
@东岳 好的谢谢东岳,我先用一阶迎风格式试试
-
这个我验证过。这个diameter是单个particle的粒径。。不是parcel的
-
@alvin 两点前的帖子了,我现在没有再做这个了。但是之前没查到。我后来的解决办法是同一位置设置多个injector,每个injector都喷不同的粒子。我是这么解决的。
-
最近再用snappyHexMesh画网格,网格画完了checkMesh也通过了,但是simpleFoam达不到稳态。用了几个probe来检查,发现速度一直在震荡。 同样的system下面的设置,之前跑其他的算例都没问题的。
我贴一下我的fvSchemes/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.3.1 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSchemes; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // ddtSchemes { default steadyState; } gradSchemes { default cellLimited leastSquares 1; //Gauss linear; } divSchemes { default none; div(phi,U) bounded Gauss linearUpwindV cellLimited leastSquares 1; div(phi,k) bounded Gauss linearUpwind celllimited leastSquares 1; div(phi,epsilon) bounded Gauss linearUpwind celllimited leastSquares 1; div(phi,R) bounded Gauss linear corrected; div(R) Gauss linear; div(phi,nuTilda) bounded Gauss upwind; div((nuEff*dev2(T(grad(U))))) Gauss linear; } laplacianSchemes { default Gauss linear corrected; } interpolationSchemes { default linear; } snGradSchemes { default corrected; } fluxRequired { default no; p ; } // ************************************************************************* //
-
你试试用ICEM画一个简单的网格,然后分别用fluent和OF计算看看结果相同么。网格不一样还有算法不一样的话没有可比性。
-
@zwl multiphaseeulerfoam 只能模拟气液好像。气固的话好像不行。 twophaseeulerFoam可以模拟气固
-
@Alvin 你好,请问一下你之前用欧拉方法用的是哪个求解器可以说一下么?就是把稀相流当做是气体考虑的。你用的是twophaseeulerfoam?
-
@Alvin 你也可以考虑,reactingparcelFoam 这个是求解稀相流的。我之前用过这个,效果也可以。
-
@Alvin 我的颗粒粒径很小的,80 nm的粒径,考虑了重力和曳力,也没考虑碰撞,由于颗粒相本身过小,颗粒速度随流体速度的,分布也跟流体的分布特征相符合,颗粒速度和流体速度相同。你的颗粒速度60m/s确实有点夸张了。你把重力加上试试。重力对拉格朗日影响很大的。你不考虑的话 感觉误差确实会很大。并且你的粒径也不算很小,重力影响挺大的。
-
@Alvin 你是跟什么结果对比的得出的颗粒速度偏差大?碰撞考虑了么? 能不能详细点说一下你的模型。我用这个模拟稀相 结果还好。
-
https://cpp.openfoam.org/v4/a01114.html 这个网站,injectionmodel 然后你点开各个injection就行了
-
@hurricane007 你确定这里的sizedistribution 指的是 particle的直径而不是parcel的等效直径么? 我看injection代码的解释说这个sizedistribution 里面指的是parcel的等效直径啊? 求解惑
-
在拉格朗日那部分,当nParticle=1的时候为DEM, 但是为了节省计算时间,很多时候用parcel 也就是说nParticle>1, 看了很多文章介绍, 当颗粒没那么密集,系统中碰撞较少的时候, 使用parcel得到的结果是比较reasonable的,但是碰撞多的情况下就需要 对 parcel的相关参数进行修正 来得到一个精确地结果。 请问当使用parcel的时候,OF对parcel的碰撞参数有相关的修正么?
-
@OF九月九 nParticel 是每个parcel里面包含的颗粒数。。 主要还是你的颗粒总数。关键看你要模拟什么了,这个数字要符合实际不是说瞎改的。。比如你实际系统中就5w个颗粒 。你怎么改体积分数和质量分数都很小。。
-
@OF九月九 你的颗粒数太少了。所以导致质量分数很小。你想一下35米乘以35米再乘5的空间。才5万个 1.25毫米的颗粒。 肯定不会大。 这样的话 体积分数更小了。在实际计算中可以忽略了体积分数了。并且这种情况下碰撞可以不用考虑。。 这篇文章可否共享下。
-
你是想计算颗粒质量所占气体质量的百分比么? 那你应该计算颗粒的体积而不是面积吧。 你这里计算的 π*(d/2)^2是面积不是体积。。看你的算例是不考虑颗粒之间的碰撞吧。。
-
@vivian 特征长度有公式,圆形的特征长度就是其直径,长方形的好像是4倍的面积除以周长什么的我记不太清楚了。你自己搜一下。松弛因子是控制变量在每次迭代中的变化,可控制收敛速度,越接近1 收敛越快,但是收敛性相对较差。这个看你模拟了一般0.7左右就可以具体情况具体分析。举个例子如果p一直发散可以适当调低。等计算一段时间后再慢慢调高 加快收敛速度。
-
有个网站可以算的,好像是nasa的网站吧,根据你提供的雷诺数等等。一般选取wallfunction yplus在 30-100之间。
-
入口的特征长度多少,发散也可能由其他引起。松弛因子等等。
-
What's ur point?
-
自己回答一下,流场不变是因为ICEM导入到OF里面的时候 风筒两边的面莫名其妙消失了,导致设置的边界条件并没有被调用。解决办法,在ICEM中把风筒两边的面设置为WALL 然后到OF中再手动改为patch。 然后右边抽风可以把右边的面 静压设置为负压。速度为pressureinletoutletvelocity 就行了。左边的面设置为inferior。 模型运行正常。更好一点的模拟风扇的bc可以用cyclic
-
@cfd-china 最近试了,但是我设置的怎么没效果。 再把问题描述一次,一个流域里面有个风筒,风筒中有个风扇提供一定的速度。 风扇两端的压差知道了。 我在设置风筒边界的时候怎么设置。 我测试的时候设置刚开始设置的是右边出口静压为负(相当于抽风机),速度边界为 pressureInletOutletVelocity, 另一端(左端)的p我设置静压为0 速度为 inletoutlet。 主流域 从左往右进风这一块边界就正常设置为不可压缩的BC。但是模拟口我发现风筒中的速度并没有变化 跟主流域一样。。然后我把风筒右端改为totalpressure的边界条件 其他不变 还是不行。。请问 这个风筒边界怎么设置。
谢谢了 -
@Wayne 对,跟这个差不多。 出风口我打算给个固定速度,或者流量。到时候看现场测得条件了。或者速度不理想我就用pressureinletoutletvelocity 来做速度边界。 入口处zerogradient。
-
@cfd-china 在 出口处抽风的边界问题。 中说:
几何模型如图所示,一个巷道(那个四方体)里面有个风筒(圆柱体)。 现在主巷道里有风从左往右。 现在加了一个风筒,风筒是抽风模式,风筒的左边有个风机在抽风
不是很清楚这段描述~:surprised:
说错了是 风筒的右边是抽风的。。 并且抽风口的全压静压已知,速度流量已知。
-
说错了是 风筒的右边是抽风的。。 并且抽风口的全压静压已知,速度流量已知。
-
几何模型如图所示,一个巷道(那个四方体)里面有个风筒(圆柱体)。 现在主巷道里有风从左往右。 现在加了一个风筒,风筒是抽风模式,风筒的左边有个风机在抽风。 我想问一下这个风筒的出口处的BC该怎么设置。U 和P?
我的想法是U 我可以测出来 能否设置成 fixedValue 然后出口的P 为zerogradient, 入口处的压力设置为巷道里面的压力是否可行? 入口处V设置为zerogradient。或者我能否用pressureinletoutletVelocity这个边界来定义出口。 但是如果这样的话 我在想出口处的P 该怎么设置? 直接给定值?还是? 如果用pressureinletoutlet 是否需要指定风筒两侧的压力值?
-
@李东岳 东岳老师,
你的东岳流体中“CFD中的若干概念” 有一个小笔误。
“无限小控制体质量的变化率 = (流入无限小控制体质量-流入无限小控制体质量)的变化率”
这里应该是流出无限小控制体质量吧。 -
在 地下室的CFD有志青年 中说:
我手里拿着几个月前从国外带回来的半斤开心果,放在我半平方米的桌子的左上角。聚精会神地看着桌子上的一本计算力学巨著:An Introduction of Computational Fluid Dynamics: The Finite Volume Method。
服
-
你不觉得大材小用了,浪费那么多的时间搞科研,不说为人类的进步献一份力把,至少让其学有所用啊,他的那些东西中学根本用不上。 人生价值何在啊。何必当年读博士。
-
计算过程中是不是有库朗数超过1的情况? post下你的log文件看下。
-
另外,气固流化床直接看DPMFoam 就是求气固四项耦合的。 系统算例就是流化床
-
make/options 下面是调用class的路径,而include 是最基本的C++知识啊 调用函数。。。这两个不一回事的。
再举个更详细的例子,假如你自己定义一个lib,然后调用自己定义的lib里面的东西,就需要options下面设置了。。 -
更改几何模型也可能出现发散的,建议检查下边界条件
-
好贴。支持
-
请把log文件的信息贴出来。
-
有没有人之前尝试过。
-
这个求解器没用过,但是用其他的稳态,你看主程序里面,都是以
timeloop
来计算的,while (simple.loop()) { Info<< "Time = " << runTime.timeName() << nl << endl; parcels.evolve();
而瞬态的还有有这一步
while (runTime.run())
稳态是不存在这一步的
-
我感觉系统不同,时间也会多少有点不同吧 就算同样的配置。 虚拟机win系统,ubuntu直接跑 感觉ubuntu跑得快。虚拟机毕竟你要分配内存给他,而你用ubuntu直接跑直接调用系统内存。所以我觉得直接跑省时间。
-
@cfd-china 这个东西之前是写给DPMFoam的。。然后我搬到我这边了。。就出现这样了。
-
这是之前别人给我的一段code,我根据自己需求改了下放到了我的求解器里。 对C++不太了解。 应该怎么改的?@cfd-china
-
simpleParticlesFoam.C: In function ‘int main(int, char**)’: /opt/openfoam30/src/OpenFOAM/lnInclude/UList.H:465:18: error: invalid type in declaration before ‘::’ token Container::const_iterator iter = (container).begin(); \ ^ simpleParticlesFoam.C:89:5: note: in expansion of macro ‘forAllConstIter’ forAllConstIter(typename basicKinematicTypeCloud, kinematicCloud, iter) ^ /opt/openfoam30/src/OpenFOAM/lnInclude/UList.H:465:18: error: expected ‘;’ before ‘::’ token Container::const_iterator iter = (container).begin(); \ ^ simpleParticlesFoam.C:89:5: note: in expansion of macro ‘forAllConstIter’ forAllConstIter(typename basicKinematicTypeCloud, kinematicCloud, iter) ^ /opt/openfoam30/src/OpenFOAM/lnInclude/UList.H:465:18: error: ‘::const_iterator’ has not been declared Container::const_iterator iter = (container).begin(); \ ^ simpleParticlesFoam.C:89:5: note: in expansion of macro ‘forAllConstIter’ forAllConstIter(typename basicKinematicTypeCloud, kinematicCloud, iter) ^ simpleParticlesFoam.C:89:71: error: expected ‘;’ before ‘iter’ forAllConstIter(typename basicKinematicTypeCloud, kinematicCloud, iter) ^ /opt/openfoam30/src/OpenFOAM/lnInclude/UList.H:465:35: note: in definition of macro ‘forAllConstIter’ Container::const_iterator iter = (container).begin(); \ ^ simpleParticlesFoam.C:89:71: error: ‘iter’ was not declared in this scope forAllConstIter(typename basicKinematicTypeCloud, kinematicCloud, iter) ^ /opt/openfoam30/src/OpenFOAM/lnInclude/UList.H:465:35: note: in definition of macro ‘forAllConstIter’ Container::const_iterator iter = (container).begin(); \ ^ /opt/openfoam30/src/OpenFOAM/lnInclude/UList.H:465:52: error: expected primary-expression before ‘)’ token Container::const_iterator iter = (container).begin(); \ ^ simpleParticlesFoam.C:89:5: note: in expansion of macro ‘forAllConstIter’ forAllConstIter(typename basicKinematicTypeCloud, kinematicCloud, iter) ^ /opt/openfoam30/src/OpenFOAM/lnInclude/UList.H:465:61: error: expected ‘)’ before ‘;’ token Container::const_iterator iter = (container).begin(); \ ^ simpleParticlesFoam.C:89:5: note: in expansion of macro ‘forAllConstIter’ forAllConstIter(typename basicKinematicTypeCloud, kinematicCloud, iter) ^ simpleParticlesFoam.C:89:30: warning: unused variable ‘basicKinematicTypeCloud’ [-Wunused-variable] forAllConstIter(typename basicKinematicTypeCloud, kinematicCloud, iter) ^ /opt/openfoam30/src/OpenFOAM/lnInclude/UList.H:465:9: note: in definition of macro ‘forAllConstIter’ Container::const_iterator iter = (container).begin(); \ ^ simpleParticlesFoam.C:89:71: error: ‘iter’ was not declared in this scope forAllConstIter(typename basicKinematicTypeCloud, kinematicCloud, iter) ^ /opt/openfoam30/src/OpenFOAM/lnInclude/UList.H:466:9: note: in definition of macro ‘forAllConstIter’ iter != (container).end(); \ ^ /opt/openfoam30/src/OpenFOAM/lnInclude/UList.H:466:27: error: expected primary-expression before ‘)’ token iter != (container).end(); \ ^ simpleParticlesFoam.C:89:5: note: in expansion of macro ‘forAllConstIter’ forAllConstIter(typename basicKinematicTypeCloud, kinematicCloud, iter) ^ /opt/openfoam30/src/OpenFOAM/lnInclude/UList.H:468:5: error: expected ‘;’ before ‘)’ token ) ^ simpleParticlesFoam.C:89:5: note: in expansion of macro ‘forAllConstIter’ forAllConstIter(typename basicKinematicTypeCloud, kinematicCloud, iter) ^ simpleParticlesFoam.C:97:20: error: no match for call to ‘(Foam::fvMesh) ()’ pmc /=mesh().V(); ^ In file included from /opt/openfoam30/src/finiteVolume/lnInclude/fvCFD.H:7:0, from simpleParticlesFoam.C:34: /opt/openfoam30/src/finiteVolume/lnInclude/fvMesh.H:79:7: note: candidate is: class fvMesh ^ In file included from /opt/openfoam30/src/OpenFOAM/lnInclude/HashTable.H:549:0, from /opt/openfoam30/src/OpenFOAM/lnInclude/runTimeSelectionTables.H:41, from /opt/openfoam30/src/OpenFOAM/lnInclude/token.H:49, from /opt/openfoam30/src/OpenFOAM/lnInclude/UListIO.C:28, from /opt/openfoam30/src/OpenFOAM/lnInclude/UList.C:225, from /opt/openfoam30/src/OpenFOAM/lnInclude/UList.H:474, from /opt/openfoam30/src/OpenFOAM/lnInclude/List.H:43, from /opt/openfoam30/src/OpenFOAM/lnInclude/labelList.H:48, from /opt/openfoam30/src/OpenFOAM/lnInclude/UPstream.H:42, from /opt/openfoam30/src/OpenFOAM/lnInclude/Pstream.H:42, from /opt/openfoam30/src/OpenFOAM/lnInclude/parRun.H:35, from /opt/openfoam30/src/finiteVolume/lnInclude/fvCFD.H:4, from simpleParticlesFoam.C:34: /opt/openfoam30/src/OpenFOAM/lnInclude/HashTableI.H:145:11: note: T& Foam::HashTable<T, Key, Hash>::operator()(const Key&) [with T = Foam::regIOobject*; Key = Foam::word; Hash = Foam::string::hash] inline T& Foam::HashTable<T, Key, Hash>::operator()(const Key& key) ^ /opt/openfoam30/src/OpenFOAM/lnInclude/HashTableI.H:145:11: note: candidate expects 1 argument, 0 provided In file included from simpleParticlesFoam.C:57:0: createFields.H:27:23: warning: unused variable ‘T’ [-Wunused-variable] const volScalarField& T = thermo.T(); ^ createFields.H:28:23: warning: unused variable ‘psi’ [-Wunused-variable] const volScalarField& psi = thermo.psi(); ^ In file included from simpleParticlesFoam.C:62:0: /opt/openfoam30/src/finiteVolume/lnInclude/initContinuityErrs.H:37:8: warning: unused variable ‘cumulativeContErr’ [-Wunused-variable] scalar cumulativeContErr = 0; ^ make: *** [Make/linux64GccDPInt32Opt/simpleParticlesFoam.o] Error 1
-
基于simpleReactingParcelFoam改的主程序:
#include "fvCFD.H" #include "turbulentFluidThermoModel.H" #include "basicReactingMultiphaseCloud.H" #include "rhoCombustionModel.H" #include "radiationModel.H" #include "IOporosityModelList.H" #include "fvIOoptionList.H" #include "SLGThermo.H" #include "simpleControl.H" #include "basicKinematicCloud.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // int main(int argc, char *argv[]) { #include "setRootCase.H" #include "createTime.H" #include "createMesh.H" #include "readGravitationalAcceleration.H" simpleControl simple(mesh); #include "createFields.H" #include "createRadiationModel.H" #include "createClouds.H" #include "createMRF.H" #include "createFvOptions.H" #include "initContinuityErrs.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // /*#############################use parcelType#####################*/ //typedef typename basicKinematicTypeCloud::particleType parcelType; /*#############################end################################*/ Info<< "\nStarting time loop\n" << endl; while (simple.loop()) { Info<< "Time = " << runTime.timeName() << nl << endl; parcels.evolve(); // --- Pressure-velocity SIMPLE corrector loop { /* #include "UEqn.H" #include "YEqn.H" #include "EEqn.H" #include "pEqn.H" */ } /*#################calculate the particle concentration, begin.(下面是自己添加的code)################*/ forAllConstIter(typename basicKinematicTypeCloud, kinematicCloud, iter) { const parcelType& p = iter(); const label cellI = p.cell(); pmc[cellI]+=p.nParticles()*p.mass0(); } pmc /=mesh().V(); /*#################calculate the particle concentration, end.################*/ turbulence->correct(); runTime.write(); Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" << " ClockTime = " << runTime.elapsedClockTime() << " s" << nl << endl; } Info<< "End\n" << endl; return 0; } // ************************************************************************* //
下面是creatFields.H的文件
Info<< "Creating combustion model\n" << endl; autoPtr<combustionModels::rhoCombustionModel> combustion ( combustionModels::rhoCombustionModel::New(mesh) ); rhoReactionThermo& thermo = combustion->thermo(); thermo.validate(args.executable(), "h", "e"); SLGThermo slgThermo(mesh, thermo); basicSpecieMixture& composition = thermo.composition(); PtrList<volScalarField>& Y = composition.Y(); const word inertSpecie(thermo.lookup("inertSpecie")); if (!composition.contains(inertSpecie)) { FatalErrorIn(args.executable()) << "Specified inert specie '" << inertSpecie << "' not found in " << "species list. Available species:" << composition.species() << exit(FatalError); } volScalarField& p = thermo.p(); const volScalarField& T = thermo.T(); const volScalarField& psi = thermo.psi(); volScalarField rho ( IOobject ( "rho", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::AUTO_WRITE ), thermo.rho() ); Info<< "\nReading field U\n" << endl; volVectorField U ( IOobject ( "U", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::AUTO_WRITE ), mesh ); //*******************************************// Info<< "Reading field pmc\n" << endl; volScalarField pmc ( IOobject ( "pmc", runTime.timeName(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE ), mesh ); /*##########################construct solid concentration field.mass of the lagrangian particle [kg/(m^3)]##############*/ #include "compressibleCreatePhi.H" mesh.setFluxRequired(p.name()); dimensionedScalar rhoMax ( dimensionedScalar::lookupOrDefault ( "rhoMax", simple.dict(), dimDensity, GREAT ) ); dimensionedScalar rhoMin ( dimensionedScalar::lookupOrDefault ( "rhoMin", simple.dict(), dimDensity, 0 ) ); Info<< "Creating turbulence model\n" << endl; autoPtr<compressible::turbulenceModel> turbulence ( compressible::turbulenceModel::New ( rho, U, phi, thermo ) ); // Set the turbulence into the combustion model combustion->setTurbulence(turbulence()); Info<< "Creating multi-variate interpolation scheme\n" << endl; multivariateSurfaceInterpolationScheme<scalar>::fieldTable fields; forAll(Y, i) { fields.add(Y[i]); } fields.add(thermo.he()); volScalarField dQ ( IOobject ( "dQ", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::AUTO_WRITE ), mesh, dimensionedScalar("dQ", dimEnergy/dimTime, 0.0) );
请问程序哪里有问题,大神可以指出来么?
-
最近找了好多方法来求浓度,都不行,但是controlDic下面的function功能好像可以实现这个功能,有谁有相关经验么?@散漫守望2016
-
@wwzhao 好没关系 谢谢您
-
@wwzhao 那看来只能这样了,等空气场稳定后再喷入颗粒模拟了。 另外还有个问题,您对 浓度这方面有了解么,我想输出颗粒的浓度场。但是好像要改solver 。改了一直在出错
-
@wwzhao 是这样模拟的,但是你如果不评论 空气场的方程的话,空气场会继续接着最后一步继续算,这样的话计算量其实并没有减少太多,只是空气场相对稳定了,残差变化很小而已。 您的意思呢?
-
@cfd-china 我听您的意见把UEqn.H 给屏蔽了,然后程序从空气场的最后一步开始运行,我模拟的是稳态。我如何知道颗粒已经稳态了,因为pyFoam只能输出空气场的信息,而颗粒信息比如说速度的残差图可以输出么?
关于passive scalar受湍流作用的疑问?
关于passive scalar受湍流作用的疑问?
snappyhexmesh可玩性高吗?
有遇见过simpleFoam达不到稳态的情况吗?
DPMFoam 设置nParticle 以后发散的问题
OF 中 颗粒的 sizedistribution models 问题?
有遇见过simpleFoam达不到稳态的情况吗?
求助dam_break模型,我用fluent和OpenFOAM算出来差异有点大
multiphaseEulerFoam疑问……
如果用DPMFoam求解稀相流会怎么样?误差大么
如果用DPMFoam求解稀相流会怎么样?误差大么
如果用DPMFoam求解稀相流会怎么样?误差大么
如果用DPMFoam求解稀相流会怎么样?误差大么
DPMFoam 设置nParticle 以后发散的问题
DPMFoam 设置nParticle 以后发散的问题
OF 对 parcel (包含多个拉格朗日partilces) 有相关修正么?
lagrangian两相流中粒子质量负载的计算。
lagrangian两相流中粒子质量负载的计算。
lagrangian两相流中粒子质量负载的计算。
关于simpleFoam中kEpsilon中k和epsilon的设定
想请教一个wallfunction的y_plus的一个问题
关于simpleFoam中kEpsilon中k和epsilon的设定
边界条件的问题
出口处抽风的边界问题。
出口处抽风的边界问题。
出口处抽风的边界问题。
出口处抽风的边界问题。
出口处抽风的边界问题。
出口处抽风的边界问题。
东岳流体“CFD中的若干概念”中的一个小笔误
地下室的CFD有志青年
博士去高中?也得足够屌才行啊
关于adjustableTime中deltaT设置问题
跪求openfoam做双流体的例子(气固流化床的最好)
跪求openfoam做双流体的例子(气固流化床的最好)
常见bug之nonNewtonianIcoFoam
几篇关于Eulerian-Lagrangian的文章推荐阅读
射流算例速度发散了,有谁知道怎么解决吗
如果用DPMFoam求解稀相流会怎么样?误差大么
关于基本求解器中laplacianFoam热传导明明有时间导数为什么还是用稳态的simple算法?
有人测试过虚拟机跑openfoam和真实系统跑openfoam的时间区别么?
尝试添加一段代码来求颗粒浓度,wmake出错,大神帮忙看看哪里出问题?
尝试添加一段代码来求颗粒浓度,wmake出错,大神帮忙看看哪里出问题?
尝试添加一段代码来求颗粒浓度,wmake出错,大神帮忙看看哪里出问题?
尝试添加一段代码来求颗粒浓度,wmake出错,大神帮忙看看哪里出问题?
有谁通过用Function 功能来输出 拉格朗日颗粒在每个cell上的浓度的么?
OF怎么冻结流场来节省模拟时间?
OF怎么冻结流场来节省模拟时间?
OF怎么冻结流场来节省模拟时间?
OF怎么冻结流场来节省模拟时间?