ANSYS非线性网格自适应技术解析

版权申诉
0 下载量 113 浏览量 更新于2024-07-19 收藏 1.72MB PDF 举报
"这篇PDF文件主要探讨了ANSYS软件中的非线性网格自适应技术,该技术用于有限元分析,特别是在处理大变形、大扭曲模拟以及追求更精确解的场景下。文件介绍了技术的基本概念、网格重分准则、实现过程、应用场景以及局限性。它强调了在求解过程中自动激活非线性网格自适应的重要性,并提到了在MAPDL和Workbench GUI界面中的相关命令和操作流程。文件还详细讲解了能量准则和位置准则作为网格重分的依据,这两种准则分别适用于捕捉应力梯度变化和定位特定区域的单元重分。" 在ANSYS的非线性网格自适应技术中,其核心是通过动态地调整网格来优化计算结果的精度和收敛性。当模型经历大变形或者需要更精确的解决方案时,这种技术显得尤为关键。网格非线性自适应技术可以在求解过程中自动触发,无需人工干预,提升了分析效率。 支持这项技术的命令如NLADAPTIVE和NLMESH,是MAPDL环境下的关键指令,而Workbench GUI界面则提供了更为直观的操作方式。用户需要指定需要重分网格的区域,定义重分的准则,以及设置重分的频率和时间范围。这允许用户根据问题的特性和需求定制网格适应策略。 文件中提到的网格重分准则有四种:能量准则、位置准则、接触准则和网格质量准则。能量准则关注单元的应变能,当单元的应变能超过其所在组件的平均应变能时,该单元将被重分,这有助于在应力梯度变化剧烈的区域细化网格。位置准则则基于节点的位置,如果所有节点都在用户定义的区域内,单元将被重分,这对于处理如橡胶密封等具有特定几何特征的问题十分有用。 接触准则适用于经典界面,确保在接触面上的网格质量。网格质量准则,如偏度,用于评估单元形状的优劣,形状不佳的单元可能需要被重分以提高计算精度。 然而,非线性网格自适应技术并非没有局限性。例如,它可能增加计算时间,对于某些特定类型的单元或几何结构,可能不适用或效果有限。此外,设定合适的重分准则和频率也需要经验和专业知识。 ANSYS的非线性网格自适应技术是解决复杂非线性问题的强大工具,它通过动态调整网格以适应模型的变化,提高了有限元分析的精度和效率,但同时也需要用户对其原理和应用有深入的理解,以便正确设置和使用。

res jiajiaojie wall group 'one' range id 1 union id 2 wall group 'two' range id 3 union id 4 wall group 'one' facet range group 'one' by wall wall group 'two' facet range group 'two' by wall ball attribute displacement multiply 0.0 ;euler multiply 0.0 ball attribute damp 0.7 calm ;pause key configure thermal def calculate_thres(conductivity_ball) pipe_len_sum= 0.0 pipe_count = 0 loop foreach cp contact.list('ball-ball') bp1 = contact.end1(cp) bp2 = contact.end2(cp) pipe_len = math.mag(ball.pos(bp2)-ball.pos(bp1)) pipe_len_sum = pipe_len_sum + pipe_len pipe_count = pipe_count + 1 endloop ball_vol_sum = 0.0 ball_count = 0 loop foreach bp ball.list ball_vol = math.pi*ball.radius(bp)^2 ball_vol_sum = ball_vol_sum + ball_vol ball_count = ball_count + 1 endloop thres = 1.0/(2.0*conductivity_ball*ball_vol_sum)*pipe_len_sum end @calculate_thres(2.5) def range_fish(vec, cp) range_fish = false if type.pointer(cp) = 'ballthermal-facetthermal' then fp = contact.end2(cp) if wall.thermal.facet.group(fp) # 'two' then range_fish = true endif endif end set random 10001 cmat thermal add 1 model ThermalPipe property thres 1e300 range fish @range_fish cmat thermal default model ThermalPipe property thres [thres] thexp 2.8e-5 cmat thermal apply ball thermal init temp 12.0 wall thermal init temp 12.0 wall thermal init temp -20.0 range group 'two' ball thermal attribute sheat 1015 ball thermal attribute thexp 2.8e-5 clump thermal attribute sheat 1.7e3 clump thermal attribute thexp 3.0e-4 set therm on mech on set mechanical slave on set mechanical substep 100 set thermal age 0.0 set mech age 0.0 def thermal_timestep thermal_timestep = thermal.timestep end set display fish @thermal_timestep def mech_timestep mech_timestep = mech.timestep end set display fish @mech_timestep ;set thermal timestep 1e-6 save 'Model_Thermal-Time_00h' solve thermal age [360] mech aratio 1e-4 save 'Model_Thermal-Time_01h' save 03_thermal

2023-07-11 上传