本文摘要(由AI生成):
OpenFOAM提供了postProcess工具用于计算和分析流体动力学模拟中的衍生物理量,如马赫数、库朗数、壁面剪切应力等。通过指定函数对象,用户可以在模拟结束后获取速度、密度、涡量等基本信息及其衍生量。同时,OpenFOAM也提供了数据转换工具,如foamDataToFluent、foamToVTK等,用于将模拟结果转换为其他软件支持的格式,便于数据分析和可视化。这些工具和功能位于OpenFOAM的$FOAM_UTILITIES/postProcessing目录下。
本文简单介绍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
参数进行查看。