有限元开源程序FEAPpv代码分析毕业论文
2021-11-02 20:44:27
摘 要
有限元方法已经从线性结构分析程序发展为求解非线性偏微分方程的通用技术。Finite Element Analysis Program - Personal Version,简称FEAPpv,是被设计用于研究和教育领域的通用的有限元分析程序,其还具有进行非线性分析的功能。FEAPpv在那些需要频繁修改以解决新问题的研究中具有优势。对这一软件进行分析有助于加深对于有限元方法的理解以及基于FEAPpv的进一步开发。
本文首先对该软件进行了总体介绍,这就包括了有限元法的基本原理,FEAPpv程序的使用范围,开发语言的选择,运行环境支持以及其用到的若干软件工程方法。
然后本文分开讨论了FEAPpv这一有限元分析程序的三个基本模块:1.数据输入模块和预处理器2.求解模块3.结果模块和后处理器
本文旨在对FEAPpv的基本原理和实现进行分析,因此接下来本文研究了FEAPpv的文件结构,调用结构和抽象流程。
线弹性板单元是一种考虑到了横向剪切力的作用,用于分析薄板和厚板问题的板弯曲单元。本文以它为例来分析了整个单元库的组成。
最后,本文对BFGS方法进行了阐释。在FEAPpv中,用户可以输入BFGS命令以使用带有BFGS(Broyden-Fletcher-Goldfarb-Shano)迭代更新的拟牛顿法来计算求解。本文较为详细地分析了该算法的实现。
关键词:有限元程序设计;FEAPpv;BFGS算法;Fortran;板单元
ABSTRACT
The finite element method has evolved from a linear structural analysis procedure to a general technique for solving non-linear partial differential equations. The Finite Element Analysis Program - Personal Version (FEAPpv) is a general purpose finite element analysis program which is designed for research and educational use, and the program also has capabilities to perform nonlinear analysis. FEAPpv has advantages in a research which requires frequent modifications to address new problem areas. The analysis of this software is helpful to deepen the understanding of the FEM and further development based on FEAPpv .
In this paper, we first give a general introduction to this software, including the basic theory of FEM,the application range of FEAPpv, programming language selection, environment support and corresponding software engineering methods.
Then we focus on the three basic parts of FEM programs:1.Data input module and pre-processor 2. Solution module 3. Results module and post-processor
The aim of this paper is to analysis the basic principle and implementation of FEAPpv, so we have studied the file structure, program call structure and procedure flow of it afterwards.
Plate element for linear elasticity is a plate bending element for use in the analysis of thin and thick plates which include the primary effects of transverse shear is provided. We use it as an example for analyzing the entire element library.
Finally, we give a demonstration of BFGS method. In FEAPpv, users can enter BFGS command to computes a solution using a quasi-Newton method with BFGS (Broyden-Fletcher-Goldfarb-Shano) updates. This paper analyzes the implementation of this algorithm in detail.
Keywords: Finite Element Programming;FEAPpv;BFGS method;Fortran;Plate element
目录
第1章 绪论 1
1.1 课题背景 1
1.2 有限元分析的理论背景简介 1
1.3 该软件在国内外的应用状况和进行代码分析的意义 2
1.3.1 应用状况 2
1.3.2 研究意义 2
1.4 本文的主要研究内容 3
第2章 软件开发背景和一般计算流程 4
2.1 该软件的介绍 4
2.1.1 编程语言选择和环境支持 4
2.2 进行有限元分析的一般流程 7
2.2.1 概述 7
2.2.2 数据输入模块和预处理器 7
2.2.3 求解模块 8
2.2.4 结果模块和后处理器 9
2.3 本章小结 9
第3章 程序基本结构分析 10
3.1 程序的文件结构 10
3.2 程序的调用结构 11
3.3 程序在进行有限元计算时的流程分析 19
3.4 本章小结 20
第4章 以板单元为例介绍单元结构 21
4.1 板单元相关的理论简介 21
4.2 板单元在FEAPpv中的实现 22
4.3 本章小结 26
第5章 以BFGS算法为例的求解分析 28
5.1 BFGS算法的由来与介绍 28
5.1.1 牛顿法 28
5.1.2 拟牛顿法简述 29
5.1.3 BFGS算法 30
5.2 BFGS算法在FEAPpv中的应用 32
5.3 BFGS算法在FEAPpv中的实现 33
5.4 本章小结 37
第6章 总结与展望 38
6.1 总结 38
6.2 展望 38
参考文献 40
致 谢 41
第1章 绪论
1.1 课题背景
FEAPpv是一个被设计用于研究和教学用途的开源、通用有限元分析程序,全称A Finite Element Analysis Program: Personal Version,它本身是作为FEAP程序的简化版本。FEAPpv对UNIX/LINUX/MAC/Windows PC这些操作系统都有这支持,并且是一个相当精巧的软件,最新的5.1版本也只有3MB左右。在这种大小下,FEAPpv依然具有相当丰富的功能,提供了一批用于弹性,粘弹性,塑性和热传递问题的材料模型。其系统中包含了足够多的命令,可用于结构分析、流体力学、传热学以及许多其他领域中那些需要由微分方程建模来解决的问题,其中也包括了对于稳态或瞬态的问题的求解[1]。
1.2 有限元分析的理论背景简介
有限元分析(FEA,Finite Element Analysis)是指采用数学的方法,以真实世界为对象所进行的模拟。是一种使用一系列个体结构简单,又可以相互作用的一个个单元体,以有限逼近无限,以离散逼近连续的分析体系。有限元分析将复杂问题进行分解,将较为复杂的问题用较简单的问题替代后再对其进行求解。
有限元分析将自身的求解域视为由大量微型的、相互连接的求解域构成,这些微型求解域被称为有限元。有限元分析会对每一个微型求解域近似得到一个比较合适的解,而后去推导并求解这个域的总体需要满足的一定限制条件,最终得到整个问题的解。在这个过程中是存在简化近似处理的,所以求解所得的的结果也并不是准确的解。大量力学问题,尤其是工程领域所遇到的力学问题,本来就难以求得解析解。采用有限元手段,如果建模合理、单元使用充足、网格划分高效、求解方法正确,就能够得到较高精度的近似解。有限元方法还能够应对各种形状或者工况非常复杂的使用场景,有着非常广阔的应用场景[2]。
1.3 该软件在国内外的应用状况和进行代码分析的意义
1.3.1 应用状况
FEAPpv被设计用于有限元理论的教学中,在O.C. Zienkiewicz[3]所著的教科书中被用于辅助有限元理论的教学,以让学生更加清晰地理解不同的单元类型、网格划分、求解方法的之间的差异。