paraView-求展向平均问题
-
@benqing 在 paraView-求展向平均问题 中说:
@小考拉 paraview能不能做不清楚,但是可以写程序实现,下面是cfdonline上的程序,我用过,可以实现,你可以研究一下,源程序好像只有速度压力这些东西,alpha.water的话需要自己添加进去
https://www.cfd-online.com/Forums/openfoam-post-processing/106966-spanwise-averaging-three-dimensional-field.html前辈您好!
我最近在研究您回复我的cfd online上的求解展向时均的代码,cfd online上面有两个代码,分别如下 和 ,请问前辈您之前用的是哪一套代码呢?
我现在在研究第一套代码的spanwiseAvg.C文件,但里面的一些遍历网格单元的代码自己不是很清楚,,请问前辈有哪些资料可以参考学习一下呢?
另外在第一套代码中(spanwiseAvg.C)的file文件中为什么是
EXE = $(FOAM_USER_APPBIN)/spanwiseAvg
呢?感觉看起来编译的是个求解器,自己的of代码基础比较薄弱,还望前辈能够赐教,感激不尽
-
推荐一个可用的代码,支持 OF-4 和 OF-7
https://github.com/ZmengXu/sampledPlaneAverage -
@小考拉 前面大佬提到cfd-online的程序,我下载第二个程序运行了下,源程序不做任何修改不会自动输出文件。我基于cfd-online第二个程序修改了一个在
of8
运行的程序,但有些疑问:1. 修改的程序
程序下载链接:postSpanwiseAverage_of8.tar.gz
主要修改collapse.H
文件,将internalField
修改为primitiveFieldRef
collapse.H
scalarField spanavgUMeanX ( meshIndexing.collapse(UMean.component(vector::X)()) ); // avgUx.internalField() = spanavgUMeanX; // of8 avgUx.primitiveFieldRef() = spanavgUMeanX; avgUx.write();
2. 问题1
虽然在
postSpanwiseAverage.C
增加了runTime.write()
,但不知为何运行不会自动输出文件。需要在collapse.H
增加avgUx.write()
才可输出结果。这是什么原因造成的?
postSpanwiseAverage.C
forAll(timeDirs, timeI) { runTime.setTime(timeDirs[timeI], timeI); Info<< "Collapsing fields for time " << runTime.timeName() << endl; #include "readFields.H" //#include "calculateFields.H" // Average fields over spanwise direction #include "collapse.H" runTime.write(); Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" << " ClockTime = " << runTime.elapsedClockTime() << " s" << nl << endl; }
3. 问题2
根据源程序
avgUx.primitiveFieldRef() = spanavgUMeanX;
,可以看出meshIndexing.collapse()
计算的是内部场的结果,而没有计算边界场的结果(如下图速度场所示,入口的速度为0,没有求平均)。现在想对壁面的剪切应力求展向平均,但该程序无法计算,该程序遍历网格单元的代码没太看懂,想问各位大佬有无比较好的方法方便计算?