转载自胡老师的公众号“CFD之道”在仿真秀上的文章:OpenFOAM|13 场数据处理_代码&命令_求解技术_科普_OpenFOAM-仿真秀干货文章 (fangzhenxiu.com)
本文简单介绍OpenFOAM中postProcess的使用。
在OpenFOAM中,可以使用程序 postProcess 对计算得到的基础结果数据进行处理以获取新的物理场数据。
postProcess 可以作为单独的程序运行,如下面的形式:
postProcess -func vorticity
也可以作为求解器参数在求解计算过程中运行,如下面的调用形式:
simpleFoam -postprocess -func vorticity
需要注意的是,不管采用何种调用方式, postProcess 都是以后处理的形式运行。不过以求解器参数的形式运行的话,可以访问求解器参数。
postProcess 提供了众多的功能,可以在终端中输入:
postProcess -list
输出结果如下图所示:
Available configured functionObjects: 57 ( CourantNo Lambda2 MachNo PecletNo Q R XiReactionRate add boundaryCloud cellMax cellMin components div dsmcFields enstrophy faceMax faceMin flowRateFaceZone flowRatePatch flowType forceCoeffsCompressible forceCoeffsIncompressible forcesCompressible forcesIncompressible grad icoUncoupledKinematicCloud interfaceHeight internalCloud mag magSqr minMaxComponents minMaxMagnitude patchAverage patchIntegrate pressureDifferencePatch pressureDifferenceSurface probes randomise residuals scalarTransport singleGraph staticPressure streamFunction streamlines subtract surfaces totalPressureCompressible totalPressureIncompressible turbulenceFields volFlowRateSurface vorticity wallHeatFlux wallShearStress writeCellCentres writeCellVolumes writeObjects 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
标签:postProcess,rhoPimpleFoam,OpenFOAM,func,得到,数据处理,latestTime From: https://www.cnblogs.com/Xiwang-Sun/p/17596834.html