@casting-sofc 确认了下,好像PEMFC有点区别,不需要进行设置
羽之下
帖子
-
-
@casting-sofc fluent有专门的燃料电池仿真模块,针对方程单独定义了UDF, 没有利用这个模块
-
复现文章《Numerical modelling of in-line and staggered blockages in parallel flowfield channels of PEM fuel cells》的极化曲线:
利用fluent2020的PEMFC新模型(addon-module选择9)和FC旧模型(addon-module选择3)。发现在0.4V时,PEMFC模型算了7万多步都没有稳定(I_anode = 0.823625 (A/cm^2)),但其基本趋势还算合理(氢气的摩尔浓度mol/m3随着流道方向逐渐降低)。
而FC模型基本稳定在I_anode = 1.429146 (A/cm^2),但是同实验值1.2A/cm^2相差较大,同时更大的问题是氢气的摩尔浓度mol/m3随着流道方向反而增加,有点不合常规。
两个模型的设置基本是一致的,差别为何如此之大,文章用的应该就是FC旧模型对比的实验值。刚接触燃料电池这块,还没有成功复现过,不知道问题出在哪,复现其他文献结果也不理想!以下是case文件,dat就不贴了,文件太大了。
Fc-0.4v.h5.cas.h5
PEMFC-0.4v.h5.cas.h5 -
没有star ccm板块,借宝地求一份starccm最新版的中文帮助文档
-
@如果随风 fluent meshing啊,icem不太适合复杂模型
-
@leilei LES需要网格更细数量更多,同等的网格下,我的计算经验是RSM消耗资源更多,收敛性主要还是取决于网格质量吧
-
-
感谢分享!
-
动网格用什么模型,我之前的案例用滑移网格总发散,无奈改为MRF才能计算。
-
@cccrrryyy 非常感谢前辈的答复,感觉思路稍微清晰些了
-
@东岳 嗯嗯,好的,我会一直留意官网通知的。
-
@东岳 感谢东岳老师的答复,请问今年还可以报名培训吗,去年就想去老板没同意,今年自费也要去。自己学的话,积累经验真是太缓慢了。
-
@FluidGao 本科限制,估计是进不去,武汉是真心不好找工作啊
-
2012年毕业于长沙普通一本,后来在武汉某985工科学校读研,2015年毕业后一直跟随导师从事其专利产品的产业化工作。从读研开始一直做的都是老师的项目,涉及离心风机、旋风分离器、离散相等。常用的软件有Fluent、ICEM CFD、star ccm等,后来发现了OpenFOAM这个宝藏,这两年又自学了OpenFOAM。
总的来说,就是学的东西很杂,且没有一项精通,接触的项目也非常局限。关键现在跟着导师的项目感觉不到光明,拖了一年又一年,自己已经不再年轻了,可是又感觉自己能力还不行,这些年都是自己单打独斗,连一个讨论的人都没有,真是无比孤独。想给自己设定个期限,最多再熬一年。可是不知道将来究竟从事什么工作,这两年对OpenFOAM很感兴趣,也不知道OpenFOAM目前在武汉这边就业面如何。自己之后的这段时间又该如何加强自己,有对武汉CFD行业了解的大神给指引下方向吗,之后主要还是想从事CFD行业。
欢迎武汉地区的CFDer热烈交流下!!! -
fluent可以做FFT,将监测某点的速度时间曲线导入其中即可
-
icoUncoupledKinematicParcelFoam中的“ico”作何理解?
icoUncoupledKinematicParcelFoam与uncoupledKinematicParcelFoam的区别?知道前者包含了颗粒间的碰撞,还有就是后者似乎考虑了传热,可用于压缩气体的计算?
当有多个injections时,后处理如何得到某个patch上stick了多少个各自injection的颗粒,计算过程只会输出某patch上stick的颗粒总数。一般怎么对离散相求解器进行后处理。目前刚接触这块求解器。 -
@cccrrryyy 你好,你贴的这个参考资料好像打不开了,可以更新下链接吗,谢谢,最近也在看壁面函数的内容。
-
@羽之下 这貌似是一个类型转换函数,搜到了类似帖子https://bbs.csdn.net/topics/390537437
-
@羽之下 我发现一个规律,只要一发帖,自己马上就能找到眉目,不发帖问题两三天卡住不动
-
在学习autoPtr时看到autoPtrI.H中有这样一段代码不是很理解,下面这个是一个重载操作符吗?没有返回类型啊,重载的又是什么符号?return了一个函数声明?c++中好像没见过这种写法啊。
template<class T> inline Foam::autoPtr<T>::operator const T&() const { return operator()(); }
operator()()函数定义如下:
template<class T> inline T& Foam::autoPtr<T>::operator()() { if (!ptr_) { FatalErrorInFunction << "object of type " << typeid(T).name() << " is not allocated" << abort(FatalError); } return *ptr_; }
-
用的滑移网格?这是展开图?
-
@莫晓柒 我现在用openfoam6.0中的rhoPimpleFoam,开启滑移网格计算也非常容易发散,后来无奈转为rhoPimpleFoam+MRF才可以计算。你可以把你的设置文件贴出来看下,这样很难看出问题。
-
@东岳 谢谢东岳老师的回答,理解了。还有就是东岳老师考不考虑来武汉开课啊,上次跟老板提出来去北京学习openfoam课程,老板不大愿意啊,能来一次武汉授课就好了。
-
最近在学习《Modelling of chemical batch reactor》(Chalmers,2016年的student project work),发现Openfoam2.4版本中,dynamicFvMesh有solidBodyMotionFvMesh,似乎就是所谓的sliding grid滑移网格。而我安装的openfoam6.0中,没有了solidBodyMotionFvMesh,取而代之应用更多的是dynamicMotionSolverFvMesh,这两个模型之间的区别大吗,Openfoam2.4似乎两个模型都有,而Openfoam6.0为何进行了删减,只留下了dynamicMotionSolverFvMesh。我现在想用滑移网格(对应fluent中的Mesh motion),有对openfoam旋转模型了解的CFDer普及下相关内容吗?谢谢!
我查找的相关资料:
dynamicMotionSolverFvMesh
//Solve a Laplace’s equation for the motion displacement or motion velocity to calculate the updated position of points
solidBodyMotionFvMesh
//Perform the rigid-body motions such as translational and rotational movements -
@我是河滩 去搜旧贴,有相关内容。
-
@东岳 查看了东岳老师贴出的case,关于“transonic no;”的设置有一些疑问,transonic的设置是否跟速度场超过340m/s有直接关系?结果显示速度场已经超过了340m/s,为何设置“transonic no;”。还有就是像“transonic”和“consistent”等选项的设置,如何查看其默认设置是否开启。
-
@shampoo Fluent中给出的最后公式是针对不可压缩流。较新的Openfoam版本都将可压缩和不可压缩糅合在一起了,注意G项和P项的差异,《The Finite Volume Method in Computational Fluid Dynamics An Advanced Introduction with OpenFOAM® and Matlab®》有较为详细的推导过程,最后结论也是针对不可压缩流。可以参考下这个https://zhuanlan.zhihu.com/p/54802989,关于湍流模型这块,我也还有好多东西没搞懂,接着在看,希望共同进步!
-
@羽之下 已解决。
-
在之前版本中:
volScalarField G(GName(), nut_2magSqr(symm(fvc::grad(U_))));
这个可以对应上fluent帮助文档上的相关公式:
和《The Finite Volume Method in Computational Fluid Dynamics An Advanced Introduction with OpenFOAM® and Matlab®》的:
这两个是一样的,但是OF6.0表示为:volScalarField::Internal G ( this->GName(), nut.v()*(dev(twoSymm(tgradU().v())) && tgradU().v()) );
好像跟之前的表达式并不一样啊,是我理解错了吗?
-
经常遇到,感觉OF矫健性不如fluent,可以尝试改善网格质量,降低离散精度。当然,只要能收敛,最后精度不一定比fluent差。
-
thermophysicalProperties中energy可以选择sensibleEnthalpy, sensibleInternalEnergy 和 absoluteEnthalpy。前两者与后者的区别,后者使用绝对能量表示包含热源的情况。而sensibleEnthalpy与sensibleInternalEnergy的区别,前者是利用焓值求解温度,后者是利用内能求解温度。热⼒学中分析闭式系统⽤内能,分析开式系统⽤焓值。那么在实际使用中,该如何选择这两种模式?例如高压离心风机。tutorials中的案例似乎找不出规律。
-
目前在使用的是openfoam6.0版本,尝试着使用不同类型的网格进行计算,目前有一些疑问:
1)13.0版的star ccm+纯多面体网格无法成功导入openfoam6.0,编译了ccm26ToFoam,导入网格没报错,但是检查网格出错。尝试曲线救国,先导入fluent,再导出msh至openfoam,倒也可以,但是终归麻烦。不知道有没有直接解决ccm网格导入openfoam的方法。
2)fluent meshing19.2生成的六面体核心+多面体网格导入openfoam提示有无效网格,但是也可以计算一段时间,不过最后计算发散。不知道openfoam是否支持fluent的这种六面体核心+多面体网格。
3)fluent meshing19.2生成的纯多面体可以导入openfoam并计算,但是计算结果精度远不如fluent,尝试提高离散精度,发现影响甚微啊,而且时间步是fluent所需的十分之一。不知道针对这种纯多面体网格,openfoam是否需要专门的离散格式。
4)icem 所画的六面体网格倒是最匹配openfoam,计算精度也高,但是针对复杂一些的几何,感觉多面体网格在精度和网格数量方面应该都较为适宜啊。不知道有没有更好的替代。
5)snappyHexMesh目前只是了解阶段,发现似乎边界命名比较麻烦,且复杂几何边界层网格生成可能会失败。snappyHexMesh才是openfoam的最佳搭档吗? -
@队长别开枪 我的是openfoam6.0版本,选的是git checkout of4,网格导入没报错,但是检查网格报错。
-
@lllwonderliquid 你好,请教下,使用壁面函数不就是为k方程壁面边界条件为kqRwallFuction, omega边界条件为omegaWallFuction, nut边界条件为nutkWallFunction吗,这里又说“我后来的做法是将网格做到y+<1,然后不采用壁面函数”。“网格做到y+>30,然后指定壁面函数也是可以的”这里又该如何指定壁面函数呢,望赐教!!!
-
@就是个胖子 嗯,是,可以,只是感觉略微有点麻烦。
-
@东岳 我试试。
-
在OF2.4中,以前是通过编译以下代码 ,获得RMS速度,然而在OF6.0中wmake编译时提示没有找到calc.H文件,后来grep一下,发现OF6.0竟然没有calc.H了,对比了OF2.4和OF6.0发现,OF6.0没有了$(WM_PROJECT_DIR)/src/postProcessing/整个文件夹,请问怎么破?你们又是怎么获得RMS速度的,paraview通过定义变量也可以解决,但是感觉有点麻烦。菜鸟一枚,求赐教!
\*---------------------------------------------------------------------------*/ #include "calc.H" #include "fvc.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh) { IOobject UPrime2Meanheader ( "UPrime2Mean", runTime.timeName(), mesh, IOobject::MUST_READ ); if (UPrime2Meanheader.headerOk()) { Info<< " Reading UPrime2Mean" << endl; volSymmTensorField UPrime2Mean(UPrime2Meanheader, mesh); volScalarField UPrime2x ( IOobject ( "UPrime2x", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE ), pow((UPrime2Mean.component(0)*UPrime2Mean.component(0)),0.25) ); Info << " Writing UPrime2x" << endl; UPrime2x.write(); volScalarField UPrime2y ( IOobject ( "UPrime2y", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE ), pow((UPrime2Mean.component(3)*UPrime2Mean.component(3)),0.25) ); Info << " Writing UPrime2y" << endl; UPrime2y.write(); volScalarField UPrime2z ( IOobject ( "UPrime2z", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE ), pow(sqrt(UPrime2Mean.component(5)*UPrime2Mean.component(5)),0.25) ); Info << " Writing UPrime2z" << endl; UPrime2z.write(); } else { Info<< " No UPrime2Mean" << endl; } Info<< "\nEnd\n" << endl; } // ************************************************************************* //
-
什么湍流模型,首层网格这么细?y+多少?可以描述的清晰一些
-
上述分析中对分界面线性插值导致误差较大,对控制方程直接采取控制容积积分法可得出正确结论。
-
上文描述有误“T3与T4中节点采取中心差分”,改为“T3与T4中心界面采取线性插值”。
-
采用内节点法推导节点4的离散方程时:
T3与T4中节点采取中心差分,
与书中差别在于分母为29而不是28,请问哪里出错了?
fluent燃料电池电流不稳定
fluent燃料电池电流不稳定
fluent燃料电池电流不稳定
求starccm_userguide_zh
请问除了ICEM外,还有什么工具可以划分混合网格吗?
[simpleFoam]、雷诺应力及湍流模型原理
湍流模型问题请教:
OpenFOAM面心数据插值到面单元节点
一个关于使用SnappyHexMesh控制边界层生成的小程序
pimpleDyMFoam求解器发散求助
关于未来工作的困惑
关于未来工作的困惑
关于未来工作的困惑
关于未来工作的困惑
关于未来工作的困惑
湍能谱曲线怎么得出
单相耦合dpm求解器疑问?
LES初始速度场设置和壁面函数设置
autoPtr代码求教
autoPtr代码求教
autoPtr代码求教
cyclic边界问题
rhoPImpleDyMFoam运行报错:Floating point exception,怎么解决?
转动模型dynamicFvMesh的变化
转动模型dynamicFvMesh的变化
k-e湍流模型的离散Susp是什么意思?
rhoSimpleFoam 求解可压缩流动时一个奇怪的现象
openfoam6.0版本中标准k-e模型的Gk项发生了变化?
openfoam6.0版本中标准k-e模型的Gk项发生了变化?
openfoam6.0版本中标准k-e模型的Gk项发生了变化?
同一套网格,Fluent可以计算,OF却计算发散
sensibleEnthalpy与 sensibleInternalEnergy
讨论下与openfoam匹配的画网格软件
CCM+到OpenFOAM的网格转换
关于OpenFOAM中K-Omega SST模型使用壁面函数时的Y+问题
如何由UPrime2Mean获得RMS速度?
如何由UPrime2Mean获得RMS速度?
如何由UPrime2Mean获得RMS速度?
关于边界层棱柱网格的疑问
数值传热学P94,关于内节点法的离散过程。
数值传热学P94,关于内节点法的离散过程。
数值传热学P94,关于内节点法的离散过程。