模型选项
以下输入项使用 mfix
前缀定义。
描述 |
类型 |
默认值 |
|
---|---|---|---|
gravity |
重力向量 [必需] |
Reals |
0 0 0 |
advect_density |
启用流体密度时间演化的标志。 |
int |
0 |
advect_enthalpy |
启用流体温度和焓时间演化的标志。 |
int |
0 |
solve_species |
启用流体组分质量时间演化的标志 分数。 |
int |
0 |
constraint_type |
选择低马赫数约束。
|
string |
IncompressibleFluid |
备注
热力学压力是一个标量值,而不是标量场。这是低马赫数假设的结果。
流体离散化
以下输入项使用 mfix
前缀定义。
Key |
描述 |
类型 |
默认值 |
---|---|---|---|
advection_type |
对流方案
|
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 |
约束类型。可用选项包括:
|
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。
|
String |
trilinear |
deposition_scale_factor |
沉积缩放因子。 仅适用于 true-dpvm 和 trilinear-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 |
用于将多余固体重新分配到相邻单元的算法。通常仅适用于沿几何体的小切割单元。 |
String |
MaxPack |
max_solids_volume_fraction |
MaxPack 重分配的固体体积分数阈值。 仅当单元的固体体积分数超过此值时,才会重新分配转移量。 |
Real |
0.6 |
deposition_redist_vfrac |
|
Real |
0.1 |
拖曳模型
以下输入项使用 mfix
前缀定义。
描述 |
类型 |
默认值 |
|
---|---|---|---|
drag_type |
流体-颗粒拖曳模型。 |
String |
None |
备注
UserDrag
关键字用于调用用户定义的拖曳模型。这是通过将 src/usr/usr_drag.cpp
文件复制到构建目录中,实现所需的拖曳模型,并重新编译代码来实现的。可以在 tests/DEM06-x
中找到示例。
传热系数
以下输入项使用 mfix
前缀定义。
描述 |
类型 |
默认值 |
|
---|---|---|---|
convection_type |
流体-颗粒传热系数模型。 |
String |
None |