场历史记录示例:压力-时间导数
除其他用途外,场历史记录还可以计算求解量的时间导数。但是,必须正确考虑场中的所有运动。
应用示例包括:
- 使用压力导数研究声学
- 使用动量时间导数通过力/力矩中的波动来检测疲劳源
- 使用湍动能时间导数标识功率波动
鼠笼式鼓风机中的压力-时间导数
在关于鼠笼式鼓风机的下图中,左侧显示压力等值线,右侧显示 (二阶误差、向后差分公式)。此数据是使用场函数创建的,该场函数利用场历史记录存储的结果。
为本案例定义的场历史记录为:
- History of Position(位置历史记录):
- 滑动样本窗口大小:2
- 场函数:位置
- 触发器:时间步
- 生成的场函数名称:History of Position Sample 0(位置历史记录样本 0) 和 History of Position Sample 1(位置历史记录样本 1)
- History of Pressure(压力历史记录):
- 滑动样本窗口大小:两个或多个(取决于模板宽度)
- 场函数:固体应力压力
- 触发器:时间步
- 生成的场函数名称:History of Pressure Sample 0(压力历史记录样本 0)、History of Pressure Sample 1(压力历史记录样本 1),以此类推
在基本输运方程中,压力的物质或材料导数为:
因此,要在具有网格运动的模拟中获得压力导数,必须计算:
可以使用样本位置的场历史记录来获取每个网格单元中的网格速度,为其生成的场函数为 HistoryofPositionSample0(位置历史记录样本 0)
(当前时间步)和 HistoryofPositionSample1(位置历史记录样本 1)
(上一时间步)。这些组合在场函数 MeshVelocity(网格速度)
中,如下所示:
MeshVelocity = ($${HistoryofPositionSample0}-$${HistoryofPositionSample1})/${dt}
其中 dt
是另一个包含时间步的场函数。此函数可作为标量参数提供。
速度梯度项可通过场函数 Pconvective_current
进行计算:
Pconvective_current = dot($${MeshVelocity},grad(${Pressure}))
其中 Pressure(压力)
是内置的求解场函数。
计算最终压力导数时,使用压力的场历史记录中的场函数进行的最简单的一阶计算为:
(${HistoryofPressureSample0}-${HistoryofPressureSample1})/(1.0*${dt}) - ${Pconvective_current}
具有较宽模板的较复杂表达式(对于压力而言,需要一个大小为 3 的滑动样本窗口)为:
(3.0*${HistoryofPressureSample0}-4.0*${HistoryofPressureSample1}+${HistoryofPressureSample2})/(2.0*${dt}) - ${Pconvective_current}
使用高阶精度的时间导数表达式可以帮助减小噪声,但代价是增大了模拟文件的大小。
如果模拟没有运动,则不需要 Pconvective_current
。
参考书目
[142]