关注我们: 登录 | 会员中心 | 手机版 | English

当前位置:中仿» 新闻中心 » 技术动态技术动态
基于SINDA/FLUINT与ANSYS Fluent的热流联合仿真方法介绍
原文作者: 发布时间: 2021-08-24 15:43:27 新闻来源:
字体大小: 打印

图片关键词

一、方法说明

       本文中使用的软件及版本为:

  •        在阅读本文并尝试建立热流耦合仿真分析之前,请确保您已经熟悉SINDA/FLUINT、Thermal Desktop、OpenTD、ANSYS Fluent、ANSYS System Coupling等软件和模块的基本情况,本文中不包括这些软件基本使用方法介绍相关的内容。

           对于瞬态计算,数据在指定的耦合时间步间隔后在界面上进行传递;对于稳态计算,数据在每次求解收敛后在界面上进行传递,并持续进行数据传递和迭代直到热模型和流场模型同时达到收敛。

     

    • Thermal Desktop提供温度数据,Fluent提供对流换热系数和流场参考温度数据;

    • Thermal Desktop提供温度数据,Fluent提供热通量数据;

    • Thermal Desktop提供热通量数据,Fluent提供温度数据。

           除了SINDA/FLUINT、Thermal Desktop和ANSYS Fluent三款软件外,本文中还使用了ANSYS System Coulping来实现Fluent与TD和S/F之间的耦合管理。System Coulping是一款专门用于耦合管理的ANSYS产品,支持交互式和命令式两种模式。本文中基于命令模式,提供了相应的示例Python输入脚本文件。此脚本文件可以满足大多数耦合应用场景,对于不太熟悉System Coulping软件的用户来说,仅需要编辑修改脚本文件中的执行控制参数,如最大迭代步数、收敛残差等,即可自定义计算任务,无需重新创建耦合控制脚本文件。

       CRTech Solver的运行脚本将自动在System Coupling中加载,运行脚本中定义了软件的环境需求,并包含了对“CRTech_ANSYS_CoSolver_v202.exe”的调用,如下图中红框所示。

         如上图所示,CRTech Solver作为中间应用,实现了System Coupling与Thermal Desktop以及SINDA/FLUINT间的数据传递。基于CRTech Solver和System Coupling,能够实现指定dwg文件的启动和指定算例的运行,两者联合作用建立了ANSYS Fluent与SINDA/FLUINT间的热交换数据传递通道,并实现了在指定瞬态耦合时间步下或稳态计算收敛时执行数据传递。

    二、热流联合仿真示例

           仿真的基本流程为:

    •  

             System Coupling输入脚本文件中需要指定相关文件的位置,我们可以根据实际部署情况指定多个工作路径。一般来说,我们推荐对整个联合仿真项目建立一个大工作路径,并在其中针对每一部分耦合任务建立一个单独的文件夹。

      图片关键词

       

            我们需要在Fluent和Thermal Desktop中分别指定涉及到数据交换的界面区域。System Coupling通过“*.scp”格式文件来获取界面区域信息。目前仅支持面与面间的数据交换。(这里的面包括实体的表面。)

      图片关键词

            对于Fluent,将涉及到耦合数据交换的面的热边界条件设置为“via System Coupling”即可。

            除了分别在Fluent和TD Direct或Thermal Desktop中指定界面外,我们还需要额外定义两个文件来告诉System Coupling哪些区域是耦合区域,以及在耦合区域中传递哪些数据。这就是我们前面提到的“*scp”文件。这是一种基于XML格式的文件。我们需要分别创建“fluent.scp”和“crtech.scp”并分别放在对应的模型路径下。

            对于SINDA/FLUINT软件,最方便的方式是直接复制,并根据需要编辑本算例中对应的文件。例如可以直接将分析类型由“steady”改为“transient”来进行瞬态模拟等等。值得注意的是,当算例中包含“Coupling_Region”区域,即表明区域内的面为热交换面。Thermal Desktop会自动创建额外的SINDA/FLUINT热网络对象来表示对流换热热导和流体温度边界节点,同时软件还会自动创建包含网格信息的文件并传递给CRTech Solver。

      3. 修改Thermal Desktop算例设置

      CALL TDHTR  $ Hold Heater Temps for steady state                                

      CALL STEADY                                                                         

      这一行命令的作用是控制SINDA/FLUINT进入OpenSF进程,等待CRTech Solver的执行和数据交换指令。

      图片关键词

      4、启动System Coupling

      del .CRTechDEFAULT-2.stdout                                                     

      cmd /k                                                                              

            文件第二行为System Coupling的启动命令,附带选项定义了输入文件为“run.py”。

       

            ANSYS System Coupling通过读入Python脚本来确定耦合对象、界面区域、控制参数等。更多关于ANSYS System Coupling软件的相关信息可以查看该软件的用户手册。

      import os                                                                     

      #                                                                                   

      dm = DatamodelRoot()                                               

      # Load the Fluent SCP file.                                           

      AddParticipant(InputFile = ‘.crtech.scp’)                      

      # Set Fluent to use 4 CPU’s.                                                      

      fluentSolver.ExecutionControl.AdditionalArguments = ‘ -t4’                     

      # Add CRTech participant to the datamodel.                                       

      crTechSolver.DisplayName = ‘Thermal Desktop’                                     

      # Specify CRTech Solver executable.                                               

      crTechSolver.ExecutionControl.Executable = ‘~/CRTech_ANSYS_CoSolver_v202.bat’

      addArguments = ‘ --dwg HeatingCoil.dwg --case “Case Set 0” -steady ’           

            此部分代码定义了SINDA/FLUINT求解器相关内容。SINDA/FLUINT不是ANSYS系列工具,因此对于System Coupling而言,需要指定额外信息。这里我们指定了求解器的位置及额外求解控制参数。一般来说,当我们定义自己的联合仿真项目时,只需要编辑dwg文件名称、希望运行的Case Set以及设置进行稳态(-steady)或瞬态(-transient)计算即可。按照ANSYS命令习惯,包含参数的选项需要通过双破折号定义,同时若dwg文件或Case Set名称中含有空格,需要外加引号。

      interfaceName = AddInterface(SideOneParticipant = ‘FLUENT-1’,  

                                      SideTwoParticipant = ‘DEFAULT-2’,                

            此部分代码将Fluent与Thermal Desktop中分别定义的耦合区域进行关联。值得注意的是,对SINDA/FLUINT软件而言,耦合区域名称总是‘Coupling_Region’;而对于Fluent而言,我们可以根据实际情况指定多个耦合区域,例如:[‘wall’, ‘battery’, ‘duct’]。

      # add data transfer from CRTech Solver to Fluent.                               

                        SideOneVariable = ‘temperature’,                                

                        TargetSide = ‘One’)                                              

      # add data transfer from Fluent to CRTech Solver.                               

                        SideOneVariable = ‘near-wall-temperature’,                     

                        TargetSide = ‘Two’)                                              

      AddDataTransfer(Interface = interfaceName,                                       

                        SideTwoVariable = ‘Hconv’,                                       

            此部分代码定义了耦合界面两侧的数据传递,Thermal Desktop将接收Fluent的对流换热系数和近壁面流体参考温度数据。Thermal Desktop会自动创建额外的SINDA/FLUINT网络单元来描述对流换热热导和流体边界节点,并基于CRTech Solver在耦合执行过程中从Fluent接收数据并传递到对应的位置。

      # Set maximum number of coupling iterations.                                     

            此部分代码定义了最大稳态迭代步数为5。System Coupling会在数据传递过程中监控耦合区域的情况,并会在满足收敛条件时终止计算。这一参数的目的是通过定义计算步数上限来防止非预期的CPU计算时间消耗。

      # Solve.                                                                             

            最后这部分代码将控制ANSYS System Coupling开始联合仿真求解。

            特别的,如果要执行瞬态或准瞬态仿真,我们需要在“Solve()”命令之前定义如下控制命令:

      analysisType = dm.CouplingControl.AnalysisType        

      analysisType.DurationControl.Option = ‘Endtime’    

      analysisType.StepControl.TimeStepSize = ‘5.0 [s]’    

      analysisType.StepControl.MaximumIterations = 1        

      # Solve.                                                                             

            除了上述命令外,还需要在“crTechSolver.ExecutionControl.AdditionalArguments”变量中(SINDA/FLUINT求解器定义部分)确保输入参数为“-transient”。

            对于本例而言,瞬态耦合步之间不存在迭代,而是一个简单交错排列的过程。因此,我们将最大和最小迭代数都设为1。对此,我们必须额外小心,只有确定系统满足解耦条件的前提下,这才是一种精确的近似方法。对于高度耦合的模型而言,我们需要更多的耦合时间步。

      6. 执行联合仿真

            通过脚本文件,我们控制System Coupling启动了我们基于OpenTD开发的CRTech Solver,这一应用程序会自动启动指定的Thermal Desktop dwg文件并运行指定的Case Set。同时我们还定义了热模型与流体模型的耦合界面,CRTech Solver会控制Thermal Desktop自动将每个区域范围内的热节点通过对流热导与流体边界节点连接。热导的数值将根据Fluent传递来的节点面积和对流换热系数数据来确定;同样的,边界节点温度将根据Fluent传递来的流体参考温度确定。作为SINDA/FLUINT求解器的输出之一,Thermal Desktop会生成界面网格数据文件并传递给CRTech Solver,CRTech Solver会将这个文件进一步传递给ANSYS System Coupling并将相应的数据映射到Fluent对应的区域内。

      图片关键词

       

            上一部分的讨论中我们提到,在热流耦合界面处,使用对流换热系数和参考温度的方式来传递数据,具有比较普遍的应用场景。但这并不总是最好的方式。我们可以通过下面的变量来设置不同的数据传递策略,来实现在界面上传递不同的参数。

       

      • -ht_t:Fluent提供Hconv和Tref,S/F提供T;(默认选项)

      • -q_t:Fluent提供热通量,S/F提供T;

      • --stability :在“-q_t”的基础上增加“G”,来提高稳定性;

      • -t_q:Fluent提供T,S/F提供热通量。

      # add data transfer from Fluent to CRTech Solver.                               

                        SideOneVariable = ‘heatflow’,                                   

                        TargetSide = ‘Two’)                                              

      dm.SolutionControl.GlobalStabilization.Option = ‘Quasi-Newton’                 

      2’].Stabilization.Option = ‘Quasi-Newton’                                        

            关于共轭传热算法的加速和稳定性并不是本文讨论的重点,如果您希望了解更多相关内容,欢迎与我们中仿智能的相关工作人员联系,或者拨打我们的全国统一客服热线400-888-5100来获取对应的资料。关于本文中介绍的方法,如果您有任何想法或疑问,也欢迎随时与我们联系交流。

      各省份区域负责人联系方式:
      张经理:17621192152【上海、浙江、广东、广西、海南、江西、福建】
      丰经理:17521145176【北京、河北、天津、山东、山西、安徽、江苏、河南、黑龙江、辽宁、吉林、内蒙古】
      许经理:18971301365【湖北、四川、重庆、宁夏、贵州、云南、陕西、甘肃、新疆、青海、湖南】

      公司电话:021-80399555
      地      址:上海市松江区九新公路1005号临港松江科技城中仿大厦 (201615) 
      电子邮箱:info@cntech.com
      客服热线:400-888-5100