计算力学

来自计算思维百科
跳转至: 导航搜索

计算力学(computational mechanics)是根据力学中的理论,利用现代电子计算机和各种数值方法,解决力学中的实际问题的一门新兴学科。它横贯力学的各个分支,不断扩大各个领域中力学的研究和应用范围,同时也在逐渐发展自己的理论和方法。计算力学是关于应用计算方法研究服从力学原理的现象的学科。在作为除理论科学与实验科学外“第三条路”的计算科学出现之前,计算力学普遍被视作应用力学的子学科,现在则被视作计算科学的子学科。计算力学是一个交叉学科,它的三个支柱是数学、计算机科学和力学。计算流体力学、计算热力学、计算电磁学和计算固体力学是其主要分支。

概述

计算力学(computational mechanics)是根据力学中的理论,利用现代电子计算机和各种数值方法,解决力学中的实际问题的一门新兴学科。它横贯力学的各个分支,不断扩大各个领域中力学的研究和应用范围,同时也在逐渐发展自己的理论和方法。计算力学是关于应用计算方法研究服从力学原理的现象的学科。在作为除理论科学与实验科学外“第三条路”的计算科学出现之前,计算力学普遍被视作应用力学的子学科,现在则被视作计算科学的子学科。

计算力学是一个交叉学科,它的三个支柱是数学、计算机科学和力学。计算流体力学、计算热力学、计算电磁学和计算固体力学是其主要分支。

在数学领域与计算力学关联最紧密的是偏微分方程、线性代数和数值分析。应用最多的数值方法依次是有限单元法、有限差分法和边界单元法。在固体力学方面有限单元法远比有限差分法应用普遍,然而在流体力学、热力学和电磁学方面,有限差分法几乎同样适用。边界单元法技术一般较不流行,但在特定领域,如音响工程,则有特别应用。

关于计算,计算机编程、算法和平行计算在计算力学中扮演了重要角色。在科学界应用最广泛的编程语言是Fortran,近来C++成为流行,科学计算人群也已慢慢接受C++作为通用语言。而因其以极自然的方式表达数学计算,及其内装的可视化能力,商业语言环境MATLAB也被广泛应用,尤其作为快速应用开发和模型验证。

计算力学已经投入实际运用的一些例子包括车辆碰撞仿真、石油储层建模、生物力学、玻璃制造和半导体建模。

在20世纪,尤其是后半段,计算力学已经对科学与技术影响深远。过去用解析方法难以或不能处理的复杂系统已经用计算力学提供的工具仿真成功了。与量子力学、分子力学和生物力学结合的新模式,将使计算力学准备在未来扮演更重要的角色。

发展史

近代力学的基本理论和基本方程在19世纪末20世纪初已基本完备了,后来的力学家大多致力于寻求各种具体问题的解。但由于许多力学问题相当复杂,很难获得解析解,用数值方法求解也遇到计算工作量过于庞大的困难。通常只能通过各种假设把问题简化到可以处理的程度,以得到某种近似的解答,或是借助于实验手段来谋求问题的解决。

第二次世界大战后不久,第一台电子计算机在美国出现,并在以后的20年里得到了迅速的发展。20世纪60年代出现了大型通用数字电子计算机,这种强大的计算工具的出现使复杂的数字运算不再成为障碍,为计算力学的形成奠定了物质基础。

与此同时,适用于计算机的各种数值方法,如矩阵运算、线性代数、数学规划等也得到相应的发展;椭圆型、抛物型和双曲型微分方程的差分格式和稳定性理论研究也相继取得进展。1960年,美国克拉夫首先提出了有限元法,为把连续体力学问题化作离散的力学模型开拓了宽广的途径。有限元法的物理实质是:把一个连续体近似地用有限个在节点处相连接的单元组成的组合体来代替,从而把连续体的分析转化为单元分析加上对这些单元组合的分析问题。

有限元法和计算机的结合,产生了巨大的威力,应用范围很快从简单的杆、板结构推广到复杂的空间组合结构,使过去不可能进行的一些大型复杂结构的静力分析变成了常规的计算,固体力学中的动力问题和各种非线性问题也有了各种相应的解决途径。

另一种有效的计算方法——有限差分方法也差不多同时在流体力学领域内得到新的发展,有代表性的工作是美国哈洛等人提出的一套计算方法,尤其是其中的质点网格法(即PIC方法)。这些方法往往来源于对实际问题所作的物理观察与考虑,然后再采用计算机作数值模拟,而不讲究数学上的严格论证。1963年哈洛和弗罗姆成功地用电子计算机解决了流体力学中有名的难题——卡门涡街的数值模拟。

无论是有限元法还是有限差分方法,它们的离散化概念都具有非常直观的意义,很容易被工程师们接受,而且在数学上又都有便于计算机处理的计算格式。计算力学就是在高速计算机产生的基础上,随着这些新的概念和方法的出现而形成的。计算力学也为实际工程项目开辟了优化设计的前景。过去,工程师们虽有追求最优化设计的愿望,但是力不从心;现在,由于有了强有力的结构分析方法和工具,便有条件研究改进设计的科学方法,逐步形成计算力学的一个重要分支——结构优化设计。计算力学在应用中也提出了不少理论问题,如稳定性分析、误差估计、收敛性等,吸引许多数学家去研究,从而推动了数值分析理论的发展。

一般过程

计算力学领域的科学家遵循一系列任务去分析他们的目标力学过程:

  1. 建立物理现象的数学模型。这一步用物理学使复杂系统公式化,通常涉及用偏微分方程表达自然或工程系统。
  2. 将数学方程转换成适合数字计算的形式。这一步叫做离散化,即从原本连续的模型建立一个近似的离散模型。尤其是通常将偏微分方程(或方程组)转化为代数方程组。此步涉及的过程在数值分析中研究。
  3. 利用计算机程序解算离散方程。直接法即单步方法得解,迭代法即从试解不断修正得到真实的解。根据问题的性质,在此阶段可能用到超级计算机或并行计算。
  4. 用实验结果或可得精确解析解的简化模型确认数学模型、数值步骤和计算机代码。新的数值或计算技术经常通过与那些已成型的数值方法对比其结果而确认。多数情况下还有基准测试题。数值结果还必须进行可视化,以及给出物理上的解释。

研究内容

计算力学的应用范围已扩大到固体力学、岩土力学、水力学、流体力学、生物力学等领域。

计算力学主要进行数值方法的研究,如对有限差分方法、有限元法作进一步深入研究,对一些新的方法及基础理论问题进行探索等等。

计算结构力学是研究结构力学中的结构分析和结构综合问题。结构分析指在一定外界因素作用下分析结构的反应,包括应力、变形、频率、极限承载能力等。结构综合指在一定约束条件下,综合各种因素进行结构优化设计,例如寻求最经济、最轻或刚度最大的设计方案。计算流体力学主要研究流体力学中的无粘绕流和粘性流动。无粘绕流包括低速流、跨声速流、超声速流等;粘性流动包括端流、边界层流动等。

计算力学已在应用中逐步形成自己的理论和方法。有限元法和有限差分方法是比较有代表性的方法,这两种方法各有自己的特点和适用范围。有限元法主要应用于固体力学,有限差分方法则主要应用于流体力学。近年来这种状况已发生变化,它们正在互相交叉和渗透,特别是有限元法在流体力学中的应用日趋广泛

研究方法和特点

用计算力学求解各种力学问题,一般有下列几个步骤:

  • 用工程和力学的概念和理论建立计算模型
  • 用数学知识寻求最恰当的数值计算方法
  • 编制计算程序进行数值计算,在计算机上求出答案
  • 运用工程和力学的概念判断和解释所得结果和意义,作出科学结论。

计算力学对于各种力学问题的适应性强,应用范围广。它能详细给出各种数值结果;通过图像显示还可以形象地描述力学过程。它能多次重复进行数值模拟,比实验省时省钱。但计算力学也有弱点,例如,它不能给出函数形式的解析表达式,因此比较难以显示数值解的规律性。许多非线性问题由于解的存在和唯一性缺乏严格证明,数值计算结果须作一些验证。分支

计算力学的核心内容是数值计算方法。数值计算方法有很多种,其中具有代表性的方法有:有限差分法,变分法和有限单元法以及加权残量法,边界单元法,无单元法。这些方法是指绝大多数是将偏微分方程的边值问题化成代数方程问题,然后用计算机求出有限个点上基本为质量的函数值。计算力学横贯各个力学分支,为它们服务,促进它们的发展,同时也受它们的影响。计算力学曾揭示出一些前所未知的物理现象,如两个非线性孤立波在相遇和干扰后仍能保持原有的振幅和波形,就是首先从数值计算中发现,以后才由实验证实的。计算力学也推动了变分方法等基本力学方法和计算方法的研究。计算力学对力学实验提出了更高的要求,促进了实验的发展。在计算力学帮助下,对实验过程中测点的最佳位置、测量最佳时刻的确定有了更可靠的理论指导。

计算力学也为实际工程项目开辟了优化设计的前景。过去,工程师们虽有追求最优化设计的愿望,但是力不从心;现在,由于有了强有力的结构分析方法和工具,便有条件研究改进设计的科学方法,逐步形成计算力学的一个重要分支——结构优化设计。计算力学在应用中也提出了不少理论问题,如稳定性分析、误差估计、收敛性等,吸引许多数学家去研究,从而推动了数值分析理论的发展。

计算力学横贯各个力学分支,为它们服务,促进它们的发展,同时也受它们的影响。在力学领域内,计算力学曾揭示出一些前所未知的物理现象。例如,两个非线性孤立波在相遇和干扰后仍能保持原有的振幅和波形,就是首先从数值计算中发现,以后才由实验证实的。计算力学也推动了变分方法等基本力学方法和计算方法的研究。计算力学对力学实验提出了更高的要求,促进了实验的发展。在计算力学帮助下,实验过程中对测点最佳位置、测量最佳时刻的确定有了更可靠的理论指导。计算力学为实际工程项目开辟了优化设计的前景。过去,工程师们虽有追求最优化设计的愿望,但是力不从心;现在,由于有了强有力的结构分析方法和工具,便有条件研究一套系统地改进设计的科学方法,逐步形成计算力学的一个重要分支——结构优化设计。计算力学在应用中也提出了不少理论问题,如稳定性分析、误差估计、收敛性等,吸引许多数学家去研究,从而推动了数值分析理论的发展。

数值模拟

力学现象的数学模拟,常常归结为求解常微分方程、偏微分方程、积分方程、或代数方程。求解这些方程的方法有两类:一类是求分析解,即以公式表示的解;另一类是求数值解,即以成批数字表示的解。很多力学问题相当复杂,特别是复杂的偏微分方程组,一般难以得出它们的分析解,而用数值方法求解则运算步骤繁复,耗用人力很多,因此在电子计算机出现以前,非不得已不用。20世纪50年代以来,出现了配有现代程序设计语言的通用数字计算机。计算机的快速运算和大存贮量,使解复杂的力学问题成为可能。三十多年来,随着计算机的改进,数值方法得到广泛的应用和很大的发展;主要是考虑算得更快、更准、省钱,并为原先不能算的问题构造算法。数值方法很多,求解偏微分方程数值解,以有限差分方法和有限元法使用最广;此外,还有变分方法、直线法、特征线法和谱方法,等等。这些方法的实质绝大多数是将偏微分方程问题化成代数问题,然后再用计算机求未知函数的数值解。

差分法

有简单、灵活和通用性强等特点。用差分方法求数值解时,须先将自变量的定义域“离散化”,即只企图算自变量定义域中有限个点的未知函数的近似值。如果自变量只有一个,则可把要计算的区间离散成个线段。如果自变量有两个,而计算区域是矩形,则最简单的离散方式是把区域分成多个小矩形。小矩形的长和宽分别叫作方向x和方向y的步长。微分方程中出现的偏导数(,), 在微积分中是差商的极限,在有限差分方法中则代以差商。

原微分方程的差分方程怎样选差商至关重要。此外,偏微分方程总还要附加边界或初始条件,这些条件也要用差分形式表示。这样,对于每个网格点的未知函数值作出未知量的代数方程组。如果网格分得较密,即步长和都比较小,或与 的数值都比较大,则所得代数方程组的未知量的数目将很大,但借助计算机,还是可以很快求出解来。由于步长无法取为零,因此用差分方法只能求得原微分方程的近似解。但只要选择合理的差商和步长,计算结果仍能令人满意,有时还能得到精度很高的解。

有限元法

这种方法是把计算区域剖分成大小不等的三角形(或其他形状的)单元,然后在各单元上用适当的插值函数来代替未知函数。根据变分原理,可将偏微分方程化成代数方程来求解。这种方法具有很广泛的适应性,特别适于求解具有复杂边界形状和物理条件的问题,而且很容易在计算机上实现。1970年以来已研究出一些适用于广泛的线性问题的有限元通用程序,对工程设计起很大作用。按照有限元法剖分的思想,把汽车外壳剖分成大小不等的许多三角形单元,而对弯曲边界只须裁弯取直即可。在应力变化剧烈和要求精确计算的地方,须把单元取得小些;在变化不剧烈的地方则可取得大些。用这种方法不仅可以适应复杂的区域,还可以尽量减少总的单元数目,从而减少未知量的数目。如果在有限差分方法中用矩形网格,则较难处理如此复杂的区域。

发展方向

计算力学的发展有两个方向。一是属于应用方面的,它的主要任务是运用现有的离散化技术和数值方法编制出计算机的力学软件,以解决工程技术中的实际问题。值得注意的倾向是:价格低廉,性能优越的小型计算机和微处理机的出现,使一些著名的大型结构分析程序也在适应小型机的需要,并正在研制可以在大型机上也可以在小型机上运行、具有高度模块化结构的程序系统。二是属于基础方面的,它的主要任务是研究力学问题的性质和建立计算模型,理解其近似的性质,研究适用于这些问题的数值方法和它们的误差、收敛性以及研究在计算机上实现这些方法的软件优化技术等。

参考文献

百度百科:计算力学

维基百科:计算力学