您好,欢迎来到飒榕旅游知识分享网。
搜索
您的当前位置:首页matlab有限元分析实例

matlab有限元分析实例

来源:飒榕旅游知识分享网
matlab有限元分析实例

有限元是一种数值求解偏微分方程的方法。基本过程大致是设置形函数,离散,形成求解矩阵,数值解矩阵,后处理之类的。MATLAB要把这些过程均自己实现,不过在数值求解矩阵时可以调用已有函数。可以理解为MATLAB是一个通用的计算器,当然它的功能远不止如此。而ANSYS之类的叫做通用有限元软件,针对不同行业已经将上述过程封装,前后处理也比较漂亮,甚至不太了解有限元理论的人也能算些简单的东西,当然结果可靠性又另说了。比较两者,ANSYS之类的用起来容易得多,但灵活性不如MATLAB。MATLAB用起来很困难,也有人做了一些模块,但大多数只能解决一些相对简单的问题。对于大多数工程问题,以及某些领域的物理问题,一般都用通用有限元软件,这些软件还能添加一些函数块,用以解决一些需要额外设置的东西。但是对于非常特殊的问题,以及一般性方程的有限元解,那只能用MATLAB或C,Fortran之类的了。

matlab的优势是提供一个矩阵化的编程语言,matlab采用COO格式存储稀疏矩阵,在组装全局刚度阵的时候,可以由下标直接组装访问元素,处理单个单元的时候,对于二维模型,需要至少二重循环,加上对单元的遍历,至少循环层数较多。众所周知,matlab在处理循环时速度较慢,特别是循环嵌套,速度更慢。采用parfor,也不成熟。优势就是在矩阵求解,雅可比矩阵与行列式求解的时候,有函数,

又快又香。对于C++,一般采用CSR格式存储稀疏阵,矩阵的行列,非零元,都要注意其存储位置。编程求解比较费劲。在处理单个单元的的时候行列式,小矩阵运算,都要自己编程,这个时候逻辑一定要清晰,代码相关的注释一定要写好。否则编着编者,就把自己绕进去。采用C++的福音是做并行时更容易控制,采用openmpi并行处理灵活。在线性方程求解时,intel MKL是另外一个福音,intel的处理器还是intel理解,真的超级快,有机会你可以试一下,体会一下CPU所有线程飙到100%的快感。Fortran真的很难用,即便接手的是Fortran程序,我也建议改成C,里面的各种子历程,简直要把人搞死,大小写混用,单个变量跨多个子历程,说不定在某个地方被更改了。为了修改时候容易,造福师弟师妹,一定用MKL库加C,别用Fortran。有人说自己写有限元程序是玩具,第一步照着文献写的当然是玩具。以abaqus为例,虽然里面开放了本构模型接口,单元接口等,但是对于没有开放的就不研究了么?对于解释新物理现象的偏微分方程,新的迭代求解算法,ansys,abaqus等商软是做不到的,还得自己写程序。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务