当前位置:文档之家› 《MATLAB数值模拟》PPT课件

《MATLAB数值模拟》PPT课件


6).FAESOR
该程序包是由Petr Krysl课题组编写的Matlab面对对象的有限元程序包,该程 序包一直都在更新,最新版本更新到了2012年4月13日 。
该程序包采用面向编程方法,程序效率较高,本身带有生成复杂网格的子程 序包。应用范围主要包括接触分析,不可压缩材料分析、电热分析,热分析、声 学分析、波动分析、弹塑性分析、超弹性材料分析、动力分析等等。
Ansys网格
Matlab重新生成的网格
类似地,我们可以通过编写相关程序调用Abaqus、Hypermesh等成熟商业 软件的网格文件。
2.2 Matlab调用Lapack程序包
我们知道Lapack是一个非常经典的线性代数程序包,由Fortran 编程语言写就。而Matlab通过书写不同的Mex文件可以调用C/C++、 Fortran其他编程语言的程序。这样可以使得Matlab计算速度、精度 提高。
Matlab的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形 式十分相似,故用Matlab来解算问题要比用C,FORTRAN等语言完成相同的 事情简捷得多。因而Matlab用来验证一种新的数值方法是十分方便的。
2.1 Matlab编写的有限元程序及程序包
1) 最经典的是Jack Chessa编写的有限元程序包,详细介绍见《Programing the Finite Element Method with Matlab》。这个程序包主要是常规有限元 2维弹性问题的一些程序,它包括前后处理程序及常见的如四节点、八节 点、九节点等参单元,三节点三角形单元和六节点三角形单元,是有限元 入门学习的工具。
MATLAB在数值模拟 中的应用
报告人:海洋孤树
•提纲
1.Matlab一些常见有限元开源 程序包的简单介绍
2.Matlab与其他软件(包)的结合 3.光滑有限元
1.Matlab常见有限元程序包
1.1 Matlab简介
Matalb是由美国mathworks公司发布的主要面对科学计算、可视化以及 交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视 化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视 窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域 提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语 言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
2.Matlab与其他软件包的结合
2.1下面介绍Matlab与Ansys结合
Matlab编程简便,在现有程序包基础上能够应用于分析新的问题,新方 法,比Ansys二次开发灵活。然而matlab本身不具备很好的网格划分功能, 这需要调用
首先在Ansys中进行建模、网格划分,编写ansys.mac文件读取网格单 元,节点,边界信息.然后在matlab中编写网格读取文件读取网格信息。
0
0
0
0
0
0
0
0
1
0
0
0
-1.35746992236604e-08 + 0.796948323019316i -1.35746992236604e-08 - 0.796948323019316i Inf + 0.00000000000000i Inf + 0.00000000000000i -5.09073123724487e-16 + 1.29104241122939i -5.09073123724487e-16 - 1.29104241122939i
ANSYS2Matlab是一个开源的工具包,该工具包括了Ansys.mac、matlab 读取ansys网格信息的文件。主要步骤是:
1.添加ansys_ch.mac、start120.ans至ansys路径,打开Ansys软件,在 ansys工具栏将会出现ansys_ch按钮用于保存ansys网格节点,单元,边 界信息。
A MATLAB PACKAGE OF ADAPTIVE FINITE ELEMENT METHODS
4). mlfem 这是一个运用于生物力学分析的程序包。主要用于模拟骨骼损伤分析。
5). Openfem 这是一个结构化的有限元程序包。能够和c、fortran语言结合编程提高计
算效率,另外该程序包可以进行各向异性材料,非线性材料、板壳问题的 分析,包括2维,3维问题。该程序包还包括了多场耦合单元,必要压电单 元。
2) MATLAB Codes for Finite Element Analysis 这是Ferreira, A. J. M编写的Matlab关于有限元的书,其中包括2维、3
维桁架机构,框架结构,Mindlin 板及层合板的分析,模块性好,对研究 板壳问题初学者提供了很好的指导作用。
3). AFEM@MATLAB 这是一个能够进行网格自适应的有限元程序包,详细参照AFEM@MATLAB:
2. 通过loadFromGridFile.m读取Ansys网格信息,并在matlab中重新生成网 格图。
右图是一个简单带圆孔平面板问题, 取1/4并网格划分。用Ansys2Matlab 工具使得Matlab成功调用Ansys网格 文件
Ansys网格
Matlab重生成的网格
Ansys2Matlab工具仅仅能够调用三角形三节点单元、四节四 边形单元,且限于2维问题,需要对进行修改一边应用高阶单 元及3为维问题,下面在其基础上修改应用到3维的例子。
矩阵A:
1.39E+11
0
0
0
0
0
0 2.56E+10
12.7
0
0
0
0
12.7 -6.46E-09
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
矩阵B:
0
-1E+11
-7.5 1 0 0
-1E+11
0
0 0 1 0
-7.5 -2.6E+10
0
0
0
0 -1.2E+11
-15.1
0
0
-15.1 5.62E-09
在编译mex文件前需要进行mex –setup操作。在不同操作系统中, 我们可能需要对相应的mex文件进行修改。下面举例说明调用Lapack
必要性。
在进行非常怪状的广义矩阵特征值求解时,直接调用Matlab中eig函 数,可能出现inf的特征值免这样的问题。
相关主题