- 积分
- 13
- 注册时间
- 2004-10-8
- 仿真币
-
- 最后登录
- 1970-1-1
|
本帖最后由 zsq-w 于 2010-7-23 11:38 编辑
目前,论坛上已有人发现采用单双精度计算产生的结果有时相差比较大,例如有些单精度计算会产生刚体变形。其实精度问题对可变体影响更大。目前本人工作中发现以下几个方面,希望对大家有借鉴作用:
1。接触面比较严重的穿透,这在金属成型和吹塑成型都比较常见。如果定义更严格的接触关系还不能解决接触穿透问题的话,你可能就需要考虑精度问题。
2。可变体应力与应变严重不对等,例如变形严重,而应力却很小。
3。轨道运输中,运动体在轨道带动下却不动等等问题。可能还可能很多其他的方面问题,特别是土木方面的(不大熟悉)。下面对单双精度及它的最近几个版本更新做个简单介绍。
在ABAQUS里面,单精度是32位字节,双精度是64位子节。双精度在显式计算中使用。6.9版本提交工作的命令:JOB=, DOUBLE=。
ABAQUS帮助文档里面采用双精度的情况:
1、计算增量步超过30万。
2、典型的节点位移增量小于节点坐标的10E-6。在6.9版本中增加DOUBLE=both功能,计算和前包装处理(packager)都是用双精度,主要是new steps, restart, and import analyses 包含数据也采用双精度,这在以前的版本是没有的。在6.10版本中增加了DOUBLE=constraint和DOUBLE=off。DOUBLE=constraint只有约束系统才采用双精度。DOUBLE=off强制采用单精度。
计算中如果需要采用双精度的话,.sta一般会有警告:
***WARNING: THE ANALYSIS MAY NEED A LARGE NUMBER OF INCREMENTS (MORE THAN
300000), AND IT MAY BE AFFECTED BY ROUND-OFF ERRORS. RUNNING THE
DOUBLE PRECISION EXECUTABLE IS RECOMMENDED.
看到这个警告,可能就需要看下结果,有什么不正常的地方,如果有请使用双精度计算。
在文档中介绍单精度计算会节省20-30%的计算时间,但在实际中有时候双精度cpu时间是单精度的2倍多,这个可能跟多cup计算也有关系。
如果没有足够计算资源,可以通过下面方式解决一部分问题:
一。网格画粗或者采用质量缩放等增加计算增量。
二、减少模拟计算时间等来减少增量步。
目前,刚体变形就是因为增量步太多,可见看出前期刚体是没有变形,后期才有所变形。而位移增量小的话,前期就有明显的不正常,例如运动体在轨道带动下却不动等现象。
写的比较多,希望有点用处。 |
评分
-
3
查看全部评分
-
|