本文摘要(由AI生成):
本文汇总了HyperMesh和AcuSolve软件使用中常见的30个问题及解答,涵盖网格导入、文件类型支持、热分析设置、自定义函数使用、多窗口操作、数据库恢复、批处理编写、并行计算设置、边界条件与初始条件设置、网格生成、湍流模型选择、数据导入后处理等方面。这些解答对工程师进行工程仿真分析至关重要,能有效解决技术难题,提升工作效率。文章还分享高级技巧,如自定义函数、并行计算设置等,适合进阶用户。此外,提供获取技术支持的途径,便于用户获取专业帮助。
问题:在HyperMesh中划好网格,如何导入到AcuSolve中进行求解设置及计算?
解答:在HyperMesh导出网格面板,选择CFD—AcuSolve,会导出生成inp文件和MESH.DIR文件夹,然后在AcuSolve中导入inp文件即可。
问题: AcuSolve的前处理器AcuConsole支持什么文件类型的导入?
解答:AcuConsole既支持几何文件导入,也支持网格文件导入(包括3D网格和2D网格)。具体可导入的格式如下所示。
问题:在做热分析时,Auto Solution Strategy下的Temperature flow是什么意思?什么时候需要选择为”on”?
解答:当流体属性较大程度上依赖于温度时推荐采用temperature_flow的方式,表示温度方程和流动方程耦合求解,有助于该类问题的收敛。如自然对流占主导的情形下应该选择temperature_flow的方式,如果温度对流动影响的程度不大,温度方程和流动方程分开求解速度会更快。
问题:AcuProbe的UDF(自定义函数)中,如何使用条件语句(if)?
解答:语句格式为:
if 条件1:
表达式1
elif 条件2:
表达式2
else:
表达式3
问题:在打开第2个AcuFieldView界面时,为什么会弹出“The requested port number is already inuse”的报错信息?
解答:默认情况下打开AcuFieldView时,会自动启动客户端/服务器端连接服务。默认的客户端端口号为12345。如果不做任何更改打开第2个AcuFieldView,便会出现端口号在使用中的报错信息。解决的办法是,打开AcuSolve Cmd Prompt命令行,输入acuFv –port none就可以正常打开多个AcuFieldView了。
问题: 打开AcuSolve的database文件(acs文件)时,提示报错如“Unableto create pathMarker”,如何解决?
解答:出现该类提示表明原模型文件已损坏,可采用下列步骤恢复数据。
1) 安装HDFview。(http://www.hdfgroup.org/hdf-java-html/hdfview/)
2) 打开HDFviewGUI
3) 通过File> Open 打开损坏的database文件。
4) database中所有的数据都以模型树的方式显示出来。
5) 全选模型树中的所有数据。
6) 点击右键选择复 制。
7) 点击File> New > HDF5
8) 输入文件名 (eg: test.acs) 并保存。
9) 滚动鼠标至最底端会看见新的database文件(test.acs.h5)
10) 在新的 database上右键选择粘贴。
11) 所有的数据粘贴到了新的database中。
12) 点击File > Save保存文件,然后关闭HDFview GUI。
13) 重命名文件 (eg: test.acs.h5 to test.acs)
14) AcuConsole打开新的database文件。
问题:如何编写bat文件顺序执行多个AcuSolve计算?
解答:需要采用call命令,如果不采用call命令,cmd会在第一个acuRun的计算结束后退出,因为acuRun本身也是bat命令,Windows在acuRun计算完成后会自动退出,所以要加上call命令。以下为命令示意:
cd D:\test\pipe1
call acuRun -pb pipe1 -np 2
cd D:\test\pipe2
call acuRun -pb pipe2 -np 2
问题:提交计算的Log文件中,acuPrep的处理过程中提示surfaces 'in the interior' 是什么意思?
解答: acuPrep在模型准备过程中会从simpleBC和Element BC中检查surface是边界还是内部面。如果一个面只有一边有体单元,或者两边有不同体单元属于不同的组,则该面是边界面。如果一个面两侧都是同一体单元组,则该面为内部面(interior),如果是内部面,则需要将该面的节点劈开,使得产生两组节点和面单元以使得两侧的面压力不同。
问题:当设置共轭传热问题时,流体与固体之间的面该设置怎么样的边界条件?
解答:对于共轭传热问题,该面可施加SIMPLE_BOUNDARY_CONDITION,type=wall的边界条件。注意默认情况下type=wall的heat flux设置为0。由于该面上的节点被流体域和固体域共享,热传递会在它们之间直接进行,因此heatflux=0并不能阻止热传递的进行。一个非零值的heat flux可以用来模拟额外的热源热量。
问题:如何将前一次的计算作为后一次计算的初始值,即第二次计算时,希望继续接着第一次计算的结果计算?
解答:采用RESTART命令可以接着计算,所有出现在RESTART命令之后的语句都会被执行,覆盖之前类似的指令。使用该功能,需要在AcuConsole中将Restart设置成on。
问题:如何使某一个体不生成网格,比如只想保留流体区域网格?
解答:在VolumeMesh Attributes下,将Mesh size type设置成’NoMesh’即可。
问题:AcuSolve中如何选择湍流模型?
解答:稳态分析一般推荐采用Spalart-Allmaras模型,该模型可满足大多数应用场合的精度要求。对于存在大规模气流分离的场合,如果需要进一步提高精度可采用瞬态DES模型。在瞬态分析中,AcuSolve提供URANS,DES和LES三种方式。取决于仿真的目标,可以选择不同的类型。如果流动的不稳定性因温度场引起的,采用URANS(瞬态SA模型)就足够了。如果流动的不稳定是由于大规模的分离和钝体涡脱落,则应该使用DES。如果对于小尺度的湍流结果感兴趣,则需要使用Dynamic LES模型。
问题:如何将AcuSolve计算完的数据导入AcuFieldView?
解答:AcuSolve数据导入AcuFieldView有两种方式。一种是直接导入Log文件(Direct Reader),一种是通过acuTrans或acuOut将AcuSolve数据转化成FV格式导入AcuFieldView,导入面板如下图所示。
问题: 如何在acuProbe自定义变量进行计算历程的监测?
解答:点击工具栏中的UserFunction图标可以基于已有输出变量进行用户自定义。
问题:如何在AcuConsole中设置多核并行计算,并采用Openmp并行模式?
解答:AcuSolve多核并行计算时默认采用Intel MPI的形式。如果需要更改消息传递类型,需要到AcuSolve安装路径script文件夹下,将Acusim.cnf中的message_passing_type该为Openmp。然后在AcuConsole计算提交面板设置并行CPU核数。
问题:Windows下如何不通过AcuConsole界面而采用命令行的形式提交AcuSolve计算?
解答:在AcuSolve的模型准备阶段会生成大量不同格式的文件,而提交计算仅用到后缀为inp的文件及MESH.DIR,inp文件中包含了所有求解设置信息,MESH.DIR文件夹中包含了所有网格文件。采用命令行提交时,先打开AcuSolveCmd Prompt,然后cd切换到inp文件和MESH.DIR文件夹所在的工作目录,然后执行acuRun命令。如D盘目录下有demo.inp和MESH.DIR文件夹,则执行如下图所示命令:其中pb为文件名,np为计算CPU个数。
问题:在HyperMesh中划好表面网格导入AcuConsole后,如果保持已划好的表面网格不变,在此基础上生成体网格?
解答:默认情况下,AcuConsole会依照其中设置的网格尺寸,包括表面网格对导入的离散格式进行重新划分,如果要保持表面网格不变,需要将生成网格的面板中的Modify the original surface mesh设置为off。
问题:为了快速得到结果,想将前一次粗糙的网格计算的结果作为这一次精细网格计算的初始条件,如果在AcuSolve中实现?
解答:AcuConsole的工具栏中有Get Solution Data for InitialConditions的按钮,点击可以直接导入前一次计算的Log文件作为后续计算的初始条件。投射的变量包括velocity,pressure还有湍流变量。
问题:生成数目很庞大网格时,本机内存不够且缓慢,如何将文件传输到Linux服务器上生成网格,并直接提交计算?
解答:AcuSolve网格生成器为AcuMeshSim,它需要ams文件和CAD.DIR文件来生成网格,ams文件为包含了所有网格设置信息的文件,CAD.DIR为几何文件。在本机生成网格时,选择Launch AcuMeshSim为off,这样本机上不会生成网格,但会输出ams文件和CAD.DIR文件,然后将该两文件拷贝到Linux服务器上,采用acuMeshSim –pb ** 生成网格,其中**为ams文件名,即前缀。
问题:如果我想监测计算域中某一点物理量的变化情况,在AcuSolve中如何设置?
解答:可以在Output下的Time History Output定义监测点,常用点定义的方式为输入所关心点的坐标位置来确定。
问题:AcuSolve中如何监测某个面物理量的变化收敛情况?
解答:可以通过AcuProbe中Surface Output找到所有观测的面,里面包含了很多变量的数据,在某个变量上单击右键,还可以导出收敛历程所有的实时数据。
问题:瞬态分析后保存了很多的time step结果如何在AcuFieldView里查看,并制作动画?
解答:通过Tools下的Transient Data可以查看各个time step的流场结果(Apply),再选择Tools下的FlipbookBuild Mode,还可以录制保存为avi格式的视频。
问题:在做热分析时,如何在AcuSolve中定义体热源?
解答:体热源可以在BodyForce下施加,AcuSolve有按体积和质量的两种方式施加,分别为Per unit volume和Per unit mass,即每立方米瓦及每千克瓦。另外还可以对热源定义Multiplier function实现可变热源。
问题:将材料的密度模型的类型设置为ideal gas后,计算开始时报如下错误,怎么解决?
acuSolve-pmpi:---------------------- Begin Time Step----------------------
acuSolve-pmpi: ***ASSERTION in Function <esvGetTempF>File <esvValue.c> Line<572>
acuSolve-pmpi: ***temp not available
acuSolve-pmpi: ***ASSERTION in Function <esvGetTempF>File <esvValue.c> Line<572>
acuSolve-pmpi: ***temp not available
MPI Application rank 0exited before MPI_Finalize() withstatus 1
acuRun: *** ERROR:error occurred executing acuSolve
解答:该错误信息表明,在选择ideal gas模型后没有打开能量方程,从而缺少温度变量,提示temp notavailable。Ideal gas在求解密度时依照的是如下方程,因此需要引入温度变量,并输入参考压力和参考温度值。
问题:在AcuConsole导入几何模型时报如下错误,请问如何解决?
解答:AcuConsole接受的几何必须是完全封闭性的。该错误一般表示导入的几何模型存在很多破面,缝隙等,无法构成一个封闭性的几何空间,需要在CAD软件中进一步改善几何。
问题:AcuFieldView中如何编辑公式自定义变量,用于后处理?
解答: AcuSolve的菜单栏Edit下选择Function Specification,然后点击Create,可自定义变量进行后处理。
问题:如何将AcuSolve的计算结果导入到HyperView进行后处理?
解答:AcuSolve计算完成后,在AcuConsole工具栏中点击AcuOut,在输出类型Output format选择Ensight或H3D格式。或者采用acuTrans的命令实现,如转化成ensight格式可用:acuTrans –pb ** -out –to ensight,其中**为文件名。
问题:采用AcuConsole进行网格划分时,如何进行局部区域网格加密?
解答:AcuConsole中有zonemesh attributes的功能,加密区域的类型有box,sphere,cylinder等形式,需要输入每种类型的尺寸大小以及网格尺寸,就可以实现局部区域的加密。
问题:AUTO_SOLUTION_STRATEGY下的relaxation factor是什么?如何设置?
解答:该值为松弛因子,默认值为0。当设置成非0值时,稳态分析收敛的速度会变慢,因此当收敛比较困难时才使用。对于瞬态分析,为了保证计算精度,松弛因子应设置为0。
问题:为什么AcuSolve不支持k-epsilon模型?
解答:AcuSolve中的Spalart-Allmaras模型囊括了湍流模型最新发展的一些技术,可以很完善的处理湍流问题。对于大多数流动,Spalart-Allmaras模型相比k-epsilon模型可获得同等的或更优的结果。另外,Spalart-Allmaras模型计算效率相比k-epsilon模型更高,只需要求解单个方程。
本期内容由Altair技术支持工程师提供,欢迎将您的问题发送至support@altair.com.cn,我们将竭诚为您解答。