模型选项

以下输入项使用 mfix 前缀定义。

描述

类型

默认值

gravity

重力向量 [必需]

Reals

0 0 0

advect_density

启用流体密度时间演化的标志。

int

0

advect_enthalpy

启用流体温度和焓时间演化的标志。

int

0

solve_species

启用流体组分质量时间演化的标志 分数。

int

0

constraint_type

选择低马赫数约束。

  • IncompressibleFluid 约束适用于没有化学反应的冷流系统。 如果输送,流体温度和组分质量分数作为被动示踪剂。

  • IdealGasOpenSystem 约束用于物理域至少包含一个压力流出边界条件的情况。 指定的流出(环境)压力被保持以确保热力学压力恒定。

  • IdealGasClosedSystem 约束用于完全周期性或完全封闭且无流入/流出边界的 系统。热力学压力随时间变化以平衡诸如化学反应等过程。

string

IncompressibleFluid

备注

热力学压力是一个标量值,而不是标量场。这是低马赫数假设的结果。

流体离散化

以下输入项使用 mfix 前缀定义。

Key

描述

类型

默认值

advection_type

对流方案

  • mol 预测-校正法的线方法。MAC速度和边界状态在空间中被外推。

  • godunov Godunov。MAC速度和边界状态在空间和时间中使用二阶泰勒 系列展开进行外推。

string

Godunov

redistribution_type

解决与显式切割单元算法相关的“小单元问题”的算法。

String

StateRedist

redistribute_before_nodal_proj

在节点投影之前重新分配速度场

Bool

True

redistribute_nodal_proj

在节点投影之后重新分配速度场

Bool

False

use_drag_coeff_in_proj_gp

在投影中代数一致的 p 系数或(默认)简化形式

Bool

False

use_drag_in_godunov

在 Godunov 通量中包含拖曳项或(默认)不包含

Bool

False

godunov_ppm

使用 Godunov 时,使用分段抛物线(PPM)而非分段线性(PLM)重建

Bool

False

godunov_include_diff_in_forcing

使用 Godunov 时,在强制项中包含粘性/扩散项

Bool

True

godunov_use_forces_in_trans

使用 Godunov 时,在构建 trans 速度时添加强制项

Bool

False

use_mac_phi_in_godunov

使用 Godunov 时,不在传递给 Godunov 例程的强制项中包含压力梯度; 而是使用包含完整压力的 mac phi 梯度

Bool

False

correction_small_volfrac

在预测和校正器结束时修正小单元速度的阈值体积分数

Real

1.e-4

附加可用约束

可以对欠约束的问题施加附加约束,例如在完全周期性域中的颗粒沉降。目前,仅支持颗粒约束。

以下输入项使用 particles 前缀定义。

描述

类型

默认值

constraint

约束类型。可用选项包括:

  • ‘mean_velocity’

String

None

对于 mean_velocity 约束,可以定义以下输入。

描述

类型

默认值

mean_velocity_x

方向0中的平均颗粒速度

Real

未定义

mean_velocity_y

方向1中的平均颗粒速度

Real

未定义

mean_velocity_z

方向2中的平均颗粒速度

Real

未定义

下面是一个在三个方向上颗粒平均速度为零的示例。

particles.constraint = "mean_velocity"

particles.constraint.mean_velocity_x = 0.
particles.constraint.mean_velocity_y = 0.
particles.constraint.mean_velocity_z = 0.

在上述示例中,在每个(流体)时间步结束时,计算每个方向上的全局平均颗粒速度,然后从每个颗粒的速度向量中减去,以确保系统的平均颗粒速度为零。

沉积方案

以下输入项使用 mfix 前缀定义。

描述

类型

默认值

deposition_scheme

用于将颗粒属性转移到欧拉网格的算法。 提供了方案概述 below

  • centroid

  • trilinear

  • true-dpvm

  • trilinear-dpvm-square

String

trilinear

deposition_scale_factor

沉积缩放因子。

仅适用于 true-dpvmtrilinear-dpvm-square 沉积方案。 该值必须在区间 \([0,\Delta x/2]\) 之间,其中 \(\Delta x\) 为网格间距。

Real

1.0

deposition_diffusion_coeff

如果设置为正值,则使用该扩散系数解扩散方程以平滑沉积量。

Real

-1.0

在以下小节中,简要描述并展示了四种沉积方法。

质心法

质心沉积方案将颗粒属性(例如体积)转移到包含其中心的欧拉网格单元中。 在下面的二维图中,颗粒中心位于右上单元中;因此,该单元的沉积权重为 1,所有其他权重为零。

质心沉积的视觉示例

图 5 质心沉积示例。

三线性插值

三线性沉积将颗粒属性转移到其中心周围的八个欧拉网格单元。 首先为每个方向计算低权重和高权重,然后将它们相乘以形成八个复合权重。 下图说明了双线性插值。 左图显示了在 X 方向计算的权重,\([0.15, 0.85]\),中间图显示了在 Y 方向计算的权重,\([0.25,0.75]\)。 右图显示了组成围绕颗粒的二维邻域的四个单元的复合权重。

三线性沉积的视觉示例

图 6 三线性沉积示例。

真实DPVM

“真实”分割颗粒体积法 (DPVM) 通过计算网格单元面与颗粒之间的交集来计算每个单元中颗粒的实际体积。 以分数体积(单元内体积除以总颗粒体积)为沉积权重。 如果定义了 deposition_scale_factor,则它会乘以颗粒半径,增加传递属性的有效面积。 真实 DPVM 方案如下图所示,其中虚线表示缩放后的颗粒半径。 增大的颗粒与顶部两个单元和右下单元相交。 由于增大的颗粒未与左下单元相交,因此其沉积权重为零。

真实分割颗粒体积沉积的视觉示例

图 7 真实 DPVM 沉积示例。

三线性 DPVM 平方

三线性 DPVM 平方方法与三线性方案相似,即为每个方向计算低权重和高权重,然后将它们相乘以为邻域中的每个八个单元提供复合权重。 主要区别在于,网格单元面对每个方向的分数体积用于计算低权重和高权重。 如果定义了 deposition_scale_factor,则它会乘以颗粒半径,增加传递属性的有效面积。 在下图中,左图显示了 X 方向的权重,中间图显示了 Y 方向的权重。 右图显示了生成的复合权重。

真实分割颗粒体积沉积的视觉示例

图 8 三线性 DPVM 平方沉积示例。

沉积重分配

以下输入项使用 mfix 前缀定义。

Key

描述

类型

默认值

deposition_redist_type

用于将多余固体重新分配到相邻单元的算法。通常仅适用于沿几何体的小切割单元。

  • MaxPack 如果固体体积分数超过规定的 max_solids_volume_fraction , 则计算局部平均固体体积,并将超过平均值的固体体积重新分配到相邻单元。 重新分配的固体的分数适用于所有转移的属性。

  • StateRedist 使用 [BG21, GAB+22] 的状态重分配算法 重新分配小单元中的转移量。

String

MaxPack

max_solids_volume_fraction

MaxPack 重分配的固体体积分数阈值。 仅当单元的固体体积分数超过此值时,才会重新分配转移量。

Real

0.6

deposition_redist_vfrac

StateRedist 重分配的几何体积分数阈值。 对于几何体积分数低于此值的单元,始终会重新分配转移量。

Real

0.1

拖曳模型

以下输入项使用 mfix 前缀定义。

描述

类型

默认值

drag_type

流体-颗粒拖曳模型。

String

None

备注

UserDrag 关键字用于调用用户定义的拖曳模型。这是通过将 src/usr/usr_drag.cpp 文件复制到构建目录中,实现所需的拖曳模型,并重新编译代码来实现的。可以在 tests/DEM06-x 中找到示例。

传热系数

以下输入项使用 mfix 前缀定义。

描述

类型

默认值

convection_type

流体-颗粒传热系数模型。

String

None