在 Fluent 中将一个 case 的设置复制到另一个 case 有几种方法,每种方法都有其适用场景和优缺点。以下是几种常用的方法:
1 使用 Scheme 脚本
这是最灵活和强大的方法,可以精确控制要复制的设置。
可以采用以下步骤:
-
创建 Scheme 脚本: 使用文本编辑器创建一个新的文件,例如 copy_settings.scm
。 -
在源 Case 中记录操作: 在 Fluent 的 File > Execute Commands... 中,选择 Record 选项,然后执行你想要复制的所有操作 (例如,定义材料、边界条件、模型设置等)。Fluent 会将这些操作记录为 Scheme 命令并写入你指定的记录文件。 -
编辑 Scheme 脚本: 打开记录文件 (默认是 journal.jou
),将其中的 Scheme 命令复制到copy_settings.scm
文件中。你可能需要根据目标 case 的具体情况对这些命令进行一些修改,例如更改对象名称或参数值。 -
在目标 Case 中运行脚本: 在 Fluent 中打开目标 case 文件。然后,在 File > Execute Commands... 中,选择 Read 选项,并选择 copy_settings.scm
文件。Fluent 将执行脚本中的命令,并将源 case 的设置应用到目标 case 中。 -
示例 Scheme 脚本 (复制材料和边界条件):
; 读取源 case 中的材料
(ti-read-material "source_case.cas")
; 选择要复制的材料 (例如空气)
(cx-set-material-prop /material "air" 'density 'constant)
(cx-set-material-prop /material "air" 'cp 'constant)
(cx-set-material-prop /material "air" 'viscosity 'constant)
(cx-set-material-prop /material "air" 'thermal-conductivity 'constant)
; 写入目标 case 中的材料
(ti-write-material "target_case.cas")
; 定义边界条件 (例如速度入口)
(define-boundary-condition velocity-inlet "inlet" #f (list 10 0 0) 300 1)
; 定义边界条件 (例如压力出口)
(define-boundary-condition pressure-outlet "outlet" #f 0 300 1)
-
优点: -
灵活性高,可以精确控制要复制的设置。 -
可重复使用,只需修改脚本中的少数参数即可应用于不同的 case。 -
适用于复杂的设置,可以复制几乎所有 Fluent 设置。 -
缺点: -
需要熟悉 Scheme 语言。 -
对于复杂的设置,脚本可能比较长,需要仔细检查和修改。
2 使用 Read/Write Settings 功能
这是一种相对简单的方法,可以复制模型的设置部分,不包含网格信息。
-
步骤: -
在源 Case 中写入设置: 在 Fluent 中打开源 case 文件。然后在控制台输入TUI命令 file/write-settings,并指定一个文件名 (如 settings.set
) -
在目标 Case 中读取设置: 在 Fluent 中打开目标 case 文件。然后在控制台输入TUI命令 file/read/settings ,并指定一个已经存在的设置文件(如前面保存的 settings.set
文件),Fluent 会将源 case 的设置应用到目标 case 中。 -
优点: -
操作简单,不需要编写脚本。 -
可以快速复制模型设置。 -
缺点: -
不会复制网格信息,因此目标 case 的网格必须与源 case 的网格在区域划分和边界命名上保持一致。 -
无法选择性地复制某些设置,只能复制整个模块 (例如,所有边界条件或所有材料)。
3 使用 Interpolation Data 功能
这种方法适用于网格不同但几何形状相似的 case,可以进行数据插值。
-
步骤:
-
在源 Case 中写入插值数据: 在 Fluent 中打开源 case 文件,并确保已经求解完毕。然后,在 File > Export > Solution Data... 中,选择 Solution Data,并选择 ASCII 格式。选择需要导出的变量和需要进行插值的区域。指定一个文件名 (例如 interpolation_data.ip
)。 -
在目标 Case 中读取插值数据: 在 Fluent 中打开目标 case 文件。然后,在 File > Interpolate > Read and Interpolate... 中,选择刚才保存的插值文件 ( interpolation_data.ip
)。选择插值方法,并设置插值选项。 -
应用插值数据: 插值数据可以用于初始化流场或设置边界条件。你可以在相应的面板中选择使用插值数据。 -
优点:
-
可以将一个 case 的解映射到另一个不同网格的 case 上。 -
适用于几何形状相似但网格不同的 case。 -
缺点:
-
只能复制求解后的数据,不能复制模型设置。 -
插值精度受网格差异和插值方法的影响。
4 使用 Journal 文件
此方法类似于 Scheme 脚本,但只能复制一些简单的操作,因为复杂的设置需要调用 Fluent 的内部函数,而这些函数可能无法通过 journal 文件访问。
-
步骤:
-
在源 Case 中记录操作: 在 Fluent 的 File > Write > Start Journal... 中,指定一个文件名 (例如 journal.jou
)。然后执行你想要复制的所有操作。 -
在目标 Case 中运行 journal 文件: 在 Fluent 中打开目标 case 文件。然后,在 File > Read > Journal... 中,选择刚才保存的 journal 文件 ( journal.jou
)。 -
优点:
-
相对简单,不需要了解 Scheme 语言的全部细节。 -
缺点:
-
功能受限,只能复制简单的操作。 -
对于复杂的设置,需要手动编辑 journal 文件,这可能比较困难。 -
不够灵活,难以控制要复制的设置。
5 总结
推荐使用 Scheme 脚本 方法,因为其提供了最大的灵活性和控制能力。如果目标 case 的网格与源 case 的网格完全相同,并且只需要复制模型设置,那么 Read/Write Settings 方法也是一个不错的选择。如果目标 case 的网格与源 case 的网格不同,但几何形状相似,可以考虑使用 Interpolation Data 方法。
无论选择哪种方法,都需要仔细检查复制后的设置,确保它们正确地应用到了目标 case 中。记得在应用设置之前备份目标 case 文件。
(完毕)
本篇文章来源于微信公众号: CFD之道
评论前必须登录!
注册