2024年5月30日发(作者:)

1 FLUENT变量梯度宏

C_R_G C_P_G C_U_G C_V_G C_W_G C_T_G C_H_G

C_YI_G

C_R_RG C_P_RG C_U_RG C_V_RG C_W_RG C_T_RG C_H_RG

C_YI_RG

FLUENT计算中单元变量有两种梯度:非限制梯度(后缀_G)和重建梯度(后缀_RG),

帮助文档建议如果需要通过单元变量重建计算单元面上的变量则使用重建梯度计算更精确。

说明:

(1) 只有当求解器正在求解某一变量时才能读取该变量的梯度。例如,定义一个能量

源项时,可以读取温度梯度(C_T_G),但是不能读取速度梯度(如C_U_G)。这是因为求

解器不断释放它不需要的变量存储。如果你要保留这些变量梯度,可以使用TUI命令:

solve/set/expert 设置“Keep temporary solver memory from being freed?” [Yes]。

当然这样做,计算需要更多内存。

(2) C_R_G 只有density-based solver中才能使用; C_P_G只有pressure-based

solver中才能使用。

(3) C_YI_G 只有density-based solver中可用,如果pressure-based solver要

使用C_YI_G,则需要设置 species/save-gradients? #t.

(4) 变量的梯度是否存在与求解器、模型、离散方式以及是否设置保留这些变量梯度

有关。

(5) C_VOF_G是否存在?质量源项中是否可以读取?设置保留对其无效?上述问题

未知

(6) UDS变量的梯度可以通过C_UDSI_G(C,0)访问,求解中始终存储,即使设置

“Keep temporary solver memory from being freed?” [No],UDS的梯度仍存在;

而且在方程求解控制中设置不求解UDS,仍可以读取UDS梯度。

2 FLUENT不计算和保存VOF的梯度

一般情况下,FLUENT计算过程中会计算VOF及其梯度(因为表面张力的计算需要用

到VOF梯度),会保存VOF值,但是不保存VOF梯度。因此,如果UDF中利用宏C_VOF_G

读取VOF梯度则会报读取错误,如下例:

UDF定义一个与VOF梯度成正比的动量源项:

DEFINE_SOURCE(xmomentum,c,t,dS,eqn)

{

Thread *w;

real vof_gx, source;