在做动网格的时候,经常出现负体积,和发散现象类似,原因多且没有标准答案,解决它之前,有必要了解负体积的原理,如果正常的网格,发生严重变形和扭曲,那就会出现负体积现象,
那么怎样才能让网格在运动过程中,不会产生负体积呢?那就是让网格运动变形在合理范围内,进一步量化要求,就是斜度不能大于0.95,首先从源头上划网格的时候就要保证网格斜度不能大于0.9,一旦大于0.9的话,网格稍微有点运动就会大于0.95,首先是在状态栏中红色警告提示斜度超过0.95了,再过会残差曲线立即飙升直至发散,最终提示负体积,立即挂掉。也就是划网格时必须给予足够的冗余让网格运动,如果网格划分在0.9以下,为什么也会出现负体积呢?那是因为每个时间步内网格运动的幅度值,超过了网格尺寸本身就会发生负体积,假如网格尺寸是1mm,一个时间步长内,运动幅度超过了1mm,这样必然造成负体积现象,最好控制到它的一半在0.5mm之内,那么怎样才能做到这点呢,首先根据木桶最短板原理要知道最小网格的尺寸是多少,假设是S,再要知道网格运动过程中最大的速度是多大,如果是指定的主动运动,那还好办,特别是6dof被动运动,那要经常大量调试计算才能知道,假设速度V,那么理论上动网格时间步长,则是S/2*V(距离除以速度等于时间),需要注意这只是动网的时间步长最大值,通常由于实际模型的复杂性,可能还要远小于这个值才能不发生负体积,这需要前期调试才能找到适合的时间步长。
千辛万苦找到动网格的时间步长之后,是不是下面设置跑运算就行了?当然不是,如果把流场的复杂性加上,时间步长可能还要减小一至三个数量级才能保证收敛不发散,可以参考我以前关于时间步长的文章,所以,动网格计算量非常巨大,时间长,这点必须要有充分的思想准备。上面所阐述的一切必须建立在正确的动网格方案和合理的设置基础上,如果前面方案和设置都错了,时间步长再小也是白搭,反之如果确定自己的方案和设置没有问题,那么直接通过估算把时间步长改小就能解决负体积问题。
那么怎样才能让网格在运动过程中,不会产生负体积呢?那就是让网格运动变形在合理范围内,进一步量化要求,就是斜度不能大于0.95,首先从源头上划网格的时候就要保证网格斜度不能大于0.9,一旦大于0.9的话,网格稍微有点运动就会大于0.95,首先是在状态栏中红色警告提示斜度超过0.95了,再过会残差曲线立即飙升直至发散,最终提示负体积,立即挂掉。也就是划网格时必须给予足够的冗余让网格运动,如果网格划分在0.9以下,为什么也会出现负体积呢?那是因为每个时间步内网格运动的幅度值,超过了网格尺寸本身就会发生负体积,假如网格尺寸是1mm,一个时间步长内,运动幅度超过了1mm,这样必然造成负体积现象,最好控制到它的一半在0.5mm之内,那么怎样才能做到这点呢,首先根据木桶最短板原理要知道最小网格的尺寸是多少,假设是S,再要知道网格运动过程中最大的速度是多大,如果是指定的主动运动,那还好办,特别是6dof被动运动,那要经常大量调试计算才能知道,假设速度V,那么理论上动网格时间步长,则是S/2*V(距离除以速度等于时间),需要注意这只是动网的时间步长最大值,通常由于实际模型的复杂性,可能还要远小于这个值才能不发生负体积,这需要前期调试才能找到适合的时间步长。
千辛万苦找到动网格的时间步长之后,是不是下面设置跑运算就行了?当然不是,如果把流场的复杂性加上,时间步长可能还要减小一至三个数量级才能保证收敛不发散,可以参考我以前关于时间步长的文章,所以,动网格计算量非常巨大,时间长,这点必须要有充分的思想准备。上面所阐述的一切必须建立在正确的动网格方案和合理的设置基础上,如果前面方案和设置都错了,时间步长再小也是白搭,反之如果确定自己的方案和设置没有问题,那么直接通过估算把时间步长改小就能解决负体积问题。