阅读背景:

关于comsol“LU因式分解时内存不足“的一些解决建议

来源:互联网 

关于comsol"LU因式分解时内存不足"的一些解决建议 前言 解决方法 其他方法 补充

前言 我在使用comsol的过程中也遇见过“LU因式分解时内存不足”的报错,总结了一下一些解决方案,供大家参考。 内存不足的可能原因有:1.计算机能存不够;2.边界条件等未正确设置造成计算错误;3.模型网格过细等。 解决方法 增加计算机内存,这个我就不多说了,量力而为,或者使用服务器; 重新进行网格划分。这里我想强调一下,重新进行网格划分不是简单的选择粗化网格,需要根据你的模型来着重分别划分网格,这里涉及到两个问题,网格划分的方法和网格划分的区域; 网格划分方法:三维建模中常用的就是使用四面体单元进行网格划分,但对于某些几何却并不是最优选择。请仔细阅读博客“如何使用几何单元进行网格划分”:链接: link.(Ps:在comsol官网的博客中有很多精华帖,值得一读。如在博客中搜索关键词“网格”,可以看到几个网格划分的经典案例的讲解)。有针对性的进行网格划分,如对于螺旋线圈使用扫掠; 网格划分区域:如上述博客中的轮毂案例,针对不同区域采用不同的网格划分方法,在具有较大弯曲度或者更多细节的地方细化网格,其他地方适当粗化网格;对导线考虑趋肤效应等情况时,根据趋肤效应深度采用边界层划分等,既能保证一定仿真精度,又能简化网格; 在网格划分区域中,还有一种方法是对于几何数量级相差较大的模型采用分区域网格划分。如我之前接触的一个模型,两个工件的几何数量级一个为厘米,一个为纳米。若纳米级这种细微工件为薄层的情况下建议根据研究目标来使用阻抗条件。网格划分的情况下可以采用边界层划分。若细微工件与大的工件相互隔离,可以在两个工件各自的邻域创建一个过度区域,对微小工件采用细化的网格划分,在各自的邻域中采用不同的细化程度进行网格划分,经过过度区域缓冲后再与大的工件连接。使用过度区域请注意边界条件和连续性条件,确保无误后再使用!!! 注意网格质量:右键网格->绘制,在绘制中启用单元过滤可以查看网格划分后的网格质量。网格质量的意思是,如四面体,网格划分结果中越接近正四面体的网格质量越接近1,相反接近0。我的经验是网格质量大于0.2能够得到较好的仿真速度,大于0.01即可进行仿真,小于0.01会报错。经验之谈,仅供参考!!!! 通过单元过滤,去检查模型是哪些位置网格质量差,然后有针对性的优化。 网格划分中的大小(Size)中自定义增长倍率和最大最小网格的大小设置也值得注意,特别是两部分不同细化程度的区域相链接时。 其他方法 这些方法是我在帮助文档或者官网讨论区看见的,未使用或者使用后无效的方法,请谨慎使用!!! Try to use Mapped mesh (if geometry is 2D) or Swept mesh (for 3D geometry) to reduce problem size and RAM requirements. 前言



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: