吾生有涯 学海无涯
析模有界 知识无界

OpenFOAM|13 场数据处理

内容纲要

本文简单介绍OpenFOAM中postProcess的使用。

在OpenFOAM中,可以使用程序postProcess对计算得到的基础结果数据进行处理以获取新的物理场数据。

postProcess可以作为单独的程序运行,如下面的形式:

postProcess -func vorticity

也可以作为求解器参数在求解计算过程中运行,如下面的调用形式:

simpleFoam -postprocess -func vorticity

需要注意的是,不管采用何种调用方式,postProcess都是以后处理的形式运行。不过以求解器参数的形式运行的话,可以访问求解器参数。

postProcess提供了众多的功能,可以在终端中输入:

postProcess -list

输出结果如下图所示:

可用的functionObjects:
74
(
CourantNo
Lambda2
MachNo
PecletNo
Q
Qdot
R
XiReactionRate
add
age
boundaryProbes
cellMax
cellMin
components
ddt
div
dsmcFields
enstrophy
faceMax
faceMin
faceZoneAverage
fieldAverage
flowRateFaceZone
flowRatePatch
flowType
forceCoeffsCompressible
forceCoeffsIncompressible
forcesCompressible
forcesIncompressible
grad
interfaceHeight
internalProbes
log
mag
magSqr
minMaxComponents
minMaxMagnitude
particles
patchAverage
patchIntegrate
phaseMap
phaseScalarTransport
pressureDifferencePatch
pressureDifferenceSurface
probes
randomise
residuals
scalarTransport
scale
shearStress
singleGraph
staticPressure
stopAtClockTime
stopAtFile
streamFunction
streamlines
subtract
surfaces
time
totalEnthalpy
totalPressureCompressible
totalPressureIncompressible
turbulenceFields
turbulenceIntensity
volFlowRateSurface
vorticity
wallHeatFlux
wallHeatTransferCoeff
wallShearStress
writeCellCentres
writeCellVolumes
writeObjects
writeVTK
yPlus
)

postProcess源代码位于路径$FOAM_UTILITIES/postProcessing/postProcess中,在路径$FOAM_SRC/functionObjects中可以找到能够被处理的物理场。

下面以案例形式进行介绍。如下面的案例利用求解器rhoPimpleFoam计算斜坡激波,计算结果中只有基本物理量T、p、U、rho等。如下面为速度分布。

此时可以使用命令计算一些衍生物理量,如下所示:

# 计算得到马赫数
rhoPimpleFoam -postProcess -func MachNo

得到的马赫数如下图所示。

相类似的方式可以得到其他的物理量:

# 得到库朗数
rhoPimpleFoam -postProcess -func CourantNo
# 得到壁面剪切应力
rhoPimpleFoam -postProcess -func wallShearStress
# 得到0s时刻的密度值
rhoPimpleFoam -postProcess -func 'writeObjects(rho)' -time 0
# 得到涡量值
rhoPimpleFoam -postProcess -func vorticity
# 独立程序方式得到涡量值
postProcess -func vorticity
# 利用外部字典进行数据获取
rhoPimpleFoam -postProcess -dict system/externalFunctionObject -latestTime

一些比较常用的调用形式包括:

# 获取速度梯度
postProcess -func 'grad(U)'
# 获取速度分量
postProcess -func 'components(U)'
# 获取速度值
postProcess -func 'mag(U)'
# 计算速度矢量的平方
postProcess -func 'magSqr(U)'
# 计算总压
postProcess -func 'totalPressureCompressible(rho,U,p)' -noZero
# 计算速度矢量的散度
postProcess -func 'div(U)' -time 500:1000
# 计算最终时刻的速度梯度幅值
postProcess -func 'mag(grad(U))' -latestTime

也可以使用工具postProcess计算指定边界上的物理量平均值,如下面的调用形式:

# 得到最终时刻边界inlet上的压力平均值
postProcess -func 'patchAverage(name=inlet,p)' –latestTime
# 得到最终时刻边界outlet上的速度平均值
postProcess -func 'patchAverage(name=outlet,U)' –latestTime
# 得到入口边界上压力积分值
postProcess -func 'patchIntegrate(name=inlet,p)' –latestTime
# 得到出口边界上速度积分值
postProcess -func 'patchIntegrate(name=outlet,U)' -latestTime


OpenFOAM中提供了一些将计算结果转换为其他格式的工具,这些工具源代码位于路径$FOAM_UTILITIES/postProcessing/dataConversion,比较常用的工具包括:

foamDataToFluent
foamToEnsight
foamToEnsightParts
foamToGMV
foamToTecplot360
foamToTetDualMesh
foamToVTK
smapToFoam

更多的信息可以查看源代码,或者使用-help参数进行查看。

本篇文章来源于微信公众号: CFD之道

赞(0) 打赏
版权声明:未经允许,请勿随意用于商业用途。
文章名称:《OpenFOAM|13 场数据处理》
文章链接:https://www.topcfd.cn/12139/
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到

说两句 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者吧

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册