在 linux 中使用 python 参数化 Ansys Fluent
Parametrizing Ansys Fluent with python in linux
我正在尝试通过 python 在 Ansys fluent 中进行参数研究。
这个想法是在将它们作为边界条件和初始条件提供给流利之前计算一些参数。
我进行了广泛的搜索,但没有找到任何相关信息...也许我没有使用好的关键字。
或者是否有等效的 ANSYS 参数化设计语言 (APDL) for fluent?我只能找到机械方面的资料。
有没有人能指导我正确的方向或去哪里寻找更多信息。
P.S。
我无法在 CFD-online、ansys 站点或此处的堆栈溢出中找到任何信息。
因此,在全球互联网上进行了长时间搜索后,我找到了执行此操作的方法。
主要有两种形式:
- 通过 Ansys Workbench
- 直接进入 Ansys Fluent
Ansys Workbench
直接使用脚本,我没有使用这种方法,因此这是我在没有尝试或测试的情况下理解的。
您可以使用以下 bash 命令以批处理模式 运行 workbench :
runwb2 -B -R "path/script.py"
其中-B
代表批处理模式,-R
执行指定的脚本。
示例和解释可以在这里找到:Scripted CFD simulations and postprocessing in Fluent and ParaVIEW
Ansys Fluent
TL;DR : 使用 Journals 和 python 修改日志,然后 运行 流利地通过 python。
首先必须使用流畅的 GUI 准备模拟。您需要修复所有非可变参数以及定义监视器。您将所有这些信息保存到案例文件中。
完成后,您必须创建一个模板,其中包含用于初始化计算的命令。最简单的方法是在网上搜索并尝试使用流畅的 TUI 中的所有内容。验证完所有内容后,您将创建一个模板(最简单的方法是使用 jinja2
)
最后,使用以下 bash 命令和 python 对参数进行简单循环以进行测试可以发挥神奇作用:
# Running fluent
bashCommand = "fluent 3ddp -i "+ journal_output + " >& outputfile &"
process = subprocess.Popen(bashCommand.split(), stdout=subprocess.PIPE)
output, error = process.communicate()
它工作得很好,一旦你习惯了流利的命令,它就很容易了!
我正在尝试通过 python 在 Ansys fluent 中进行参数研究。 这个想法是在将它们作为边界条件和初始条件提供给流利之前计算一些参数。
我进行了广泛的搜索,但没有找到任何相关信息...也许我没有使用好的关键字。
或者是否有等效的 ANSYS 参数化设计语言 (APDL) for fluent?我只能找到机械方面的资料。
有没有人能指导我正确的方向或去哪里寻找更多信息。
P.S。 我无法在 CFD-online、ansys 站点或此处的堆栈溢出中找到任何信息。
因此,在全球互联网上进行了长时间搜索后,我找到了执行此操作的方法。 主要有两种形式:
- 通过 Ansys Workbench
- 直接进入 Ansys Fluent
Ansys Workbench
直接使用脚本,我没有使用这种方法,因此这是我在没有尝试或测试的情况下理解的。 您可以使用以下 bash 命令以批处理模式 运行 workbench :
runwb2 -B -R "path/script.py"
其中-B
代表批处理模式,-R
执行指定的脚本。
示例和解释可以在这里找到:Scripted CFD simulations and postprocessing in Fluent and ParaVIEW
Ansys Fluent
TL;DR : 使用 Journals 和 python 修改日志,然后 运行 流利地通过 python。
首先必须使用流畅的 GUI 准备模拟。您需要修复所有非可变参数以及定义监视器。您将所有这些信息保存到案例文件中。
完成后,您必须创建一个模板,其中包含用于初始化计算的命令。最简单的方法是在网上搜索并尝试使用流畅的 TUI 中的所有内容。验证完所有内容后,您将创建一个模板(最简单的方法是使用 jinja2
)
最后,使用以下 bash 命令和 python 对参数进行简单循环以进行测试可以发挥神奇作用:
# Running fluent
bashCommand = "fluent 3ddp -i "+ journal_output + " >& outputfile &"
process = subprocess.Popen(bashCommand.split(), stdout=subprocess.PIPE)
output, error = process.communicate()
它工作得很好,一旦你习惯了流利的命令,它就很容易了!