前文演示了利用pyFluent进行watertight Geometry网格生成(pyFluent|watertight网格生成)。本文接上文,采用pyFluent进行模型前处理并执行计算。
计算模型与网格如下图所示。
模型中包含2个入口:inlet1及inlet2,包括1个出口:outlet。
边界条件为:
其他边界为绝热壁面。
利用下面的代码段启动Fluent、读取网格并对网格进行检查。
import ansys.fluent.core as pyFluent
session = pyFluent.launch_fluent(precision='double',processor_count = 24)
msh_filename = 'teepipe.msh.h5'
session.solver.root.file.read(file_type="case",file_name = msh_filename)
部分输出如下图所示。
利用下面的代码进行网格检查。
session.solver.tui.mesh.check()
程序输出如下图所示。
利用下面的代码激活能量方程。
session.solver.root.setup.models.energy.enabled = True
采用液态水作为案例中使用的材料介质。可以从材料库中**材料。
session.solver.root.setup.materials.copy_database_material_by_name(
type='fluid',name='water-liquid'
)
案例中有三个边界需要设置。2个速度入口边界需要指定入口速度及湍流物理量,出口边界采用默认设置。
session.solver.root.setup.boundary_conditions.velocity_inlet['inlet1'].vmag={
"option": "constant or expression",
"constant": 1,
}
session.solver.root.setup.boundary_conditions.velocity_inlet['inlet1'].ke_spec= 'Intensity and Hydraulic Diameter'
session.solver.root.setup.boundary_conditions.velocity_inlet['inlet1'].turb_intensity = 5
session.solver.root.setup.boundary_conditions.velocity_inlet['inlet1'].turb_hydraulic_diam = '0.02 [m]'
session.solver.root.setup.boundary_conditions.velocity_inlet['inlet1'].t={
'option':'constant or expression',
'constant':300,
}
session.solver.root.setup.boundary_conditions.velocity_inlet['inlet2'].vmag={
"option": "constant or expression",
"constant": 2,
}
session.solver.root.setup.boundary_conditions.velocity_inlet['inlet2'].ke_spec= 'Intensity and Hydraulic Diameter'
session.solver.root.setup.boundary_conditions.velocity_inlet['inlet2'].turb_intensity = 5
session.solver.root.setup.boundary_conditions.velocity_inlet['inlet2'].turb_hydraulic_diam = '0.02 [m]'
session.solver.root.setup.boundary_conditions.velocity_inlet['inlet2'].t={
'option':'constant or expression',
'constant':340,
}
利用下面的代码进行初始化及计算。
session.solver.root.solution.initialization.hybrid_initialize()
session.solver.tui.solve.monitors.residual.plot("no")
session.solver.root.solution.run_calculation.iterate.get_attr('arguments')
session.solver.root.solution.run_calculation.iterate(number_of_iterations=150)
如下图所示。
后处理可以使用ansys-fluent-visualization
模块。
如下面的代码可以显示walls壁面上的温度分布。
from ansys.fluent.visualization.pyvista import Graphics
graphics = Graphics(session=session)
temperature_contour = graphics.Contours['contour-temperature']
temperature_contour.field = 'temperature'
temperature_contour.surfaces_list = ['walls']
temperature_contour.display("window-1")
运行结果如下图所示。
可以使用下面的代码在当前目录下保存case与data文件。
session.solver.tui.file.write_case_data()
(完毕)