如何学习数值模拟(一)

作者:www.liurg.org.

声明:如转载,请注明原文与出处。对应英文原文发表于多物理场模拟学习和交流的网站:www.multiphysics.us。文中主要观点以及这些观点更加准确和详细的论述可在《Multiphysics in Porous Materials》一书中找到。如果需要引用(如学术论文),请引用这本书。书可以在出版商(Springer)的网站(https://www.springer.com/us/book/9783319930275)或者各高校图书馆中找到。

 

1. 概述

本文主要分享笔者在学习和教授数值模拟过程中总结的经验,适用于土木和机械当中常用的有限元、应用数学和众工程学科中都常涉及的有限差分法、工程和地球物理中被常常讨论到的有限体积法、甚至还包括很多无网格法,以及近十多年来在数值模拟领域大热的多物理场(中文又译为多场耦合)等。这些概念,包括他们内部很多概念如伽辽金法,离散格式,和具体的有限元工具等二级概念,很多时候被与数值模拟混用或在某一领域内视作数值模拟的主要内容,导致数值模拟在普通人眼中或如洪水猛兽或遥不可及,在初学者眼中更如雾里看花,一团乱麻。哪怕对于从事数值模拟多年的学者,依然会有难识庐山真面目的感叹。本文的目的是想与大家分享一幅数值模拟的全景画卷和一个简单和透彻的理解这一领域的独特视角,以及一些需要用多年困惑、挣扎, 和无用功换取的经验之谈。

 

2. 数值模拟的各种概念

首先,数值模拟是一门综合了数学、物理、工程应用,和数值分析的艺术。这一理解对于数值模拟的分支如多物理场等依然适用。

此处的数学主要指偏微分方程,张量分析,泛函分析等;这些数学内容提供了描述数值模拟所用来分析和解决的各种问题的语言:他们可以被用来方便而准确描述一个问题,甚至为这些问题的解决提供便利。如果你不认识偏微分方程,你就很难理解和表述一个应用问题背后的实质:物理现象和物理机制。熟练掌握这些数学语言,对于深入理解数值分析并进而在这一领域登堂入室是有着绝对的意义的。

物理在早期的数值模拟中往往被忽视。因为我们往往倾向于认为我们眼中的世界即是世界的全部。尤其是在早年的数值模拟实践中,尤其的工程学科中的,数值模拟总是在各个学科中独立而割裂地进行的。以笔者为例,我一开始所认知的数值模拟就是结构和土体中(主要涉及固体力学)的力学分析。我所接触到的软件如Abaqus和Ansys在当时似乎也都是以这些为主;同样,所接触到的书籍,不论是涉及数学的泛函分析还是涉及数值分析的有限单元法,无一不是以力学分析为例子。想必在此时,那些土木,机械和地球物理中从事流体相关眼中数值模拟肯定是另一个世界吧:纳维斯托克斯方程,湍流模型和有限体积法。从后来物理场的观点,之所以有以上区别,主要是不同学科和领域所涉及的主要物理过程不一样,这些物理上的差异同样带来了数学,工程应用和数值分析方法上的不同。随着交叉学科和工业合作的趋势,物理在数值分析中的作用更加被强化,这也是多物理场成为数值模拟的一个热门方向和趋势的原因。

工程应用是数值模拟发展的一个核心动力。我们想准确知道结构和机械部件在外力下如何变形,我们需要预测空气和水如何流动,我们需要理解电磁波怎么传播,诸如此类的需求促进着数值模拟的不断发展,因此是动力。另一方面,不断被突破的计算机技术使得更复杂的计算方法和技术成为可能。这也是为什么工程应用需求与理论很多都已存在几百年,而数值模拟才在计算机出现后的近几十年成为改变人类社会和各工程学科发展的一个重要力量的原因。此外,不断涌现的应用需求和被刷新的计算能力也反过来促进了工程应用理论和数值分析方法的进步和突破。但同时应当被提及的是,所需的数学语言早已成熟,其所经历的变化主要是这些数学语言与物理,工程应用和数值分析的更好的融合,使我们的数值模拟所需的描述更加简洁、准确、通用,和强大。

数值分析也就是指我们有限单元法,有限差分法和有限体积法等。一个常见的误区是很多初学者经常把某一种方法看做数值模拟的全部。事实上,这些方法只是提供了将工程应用问题的背后的物理机制的数学描述进行离散化的途径。之所以需要离散化,因为数学描述往往通过张量、偏微分方程,和一般数学函数来进行,因此描述在空间和时间上是连续的。比如,一个拉普拉斯等式就描述了能量在空间中的稳态分布;这个方程的解,也就是一个连续函数,就是空间中每一个无限小的点的能量值。然而,一般的工程应用中都涉及比较复杂的边界条件、初始条件,和材料性质,这就使得求解这些建立在连续场的数学描述中的问题变得非常困难。于是,一个常用的方法就是讲这些连续的方程离散化,于是我们就可以得到一个代数方程A*X=B。其中,数组X就是数学描述中的物理场量(也是数学中的因变量和未知数)在离散的点上的值。以上所提及的三种方法就提供讲连续的数学描述转化那个代数方程的方式。事实上,我们有更多的离散方法可供选择,所有这些方法都是各有特色,各有所长,并因此应用在不用领域和问题上。

综上所述,数值分析要求我们首先从工程应用中找到待分析和解决的问题,然后需要找出这些问题背后决定性的物理机制或现象,接着用数学将这些机制和现象描述出来,最后选取合适的数值分析方法将问题求解出来。市面上的数值模拟的学习材料很少囊括所有以上内容。常见的情况是大多数初学者都是从介绍相关模拟软件或者某种数值分析方法的书籍开始学习数值模拟。从软件开始的话,我们往往只能得到关于数值模拟的非常琐碎和片面的内容,甚至将某个软件的特色内容夸大为数值模拟的一个主要部分,尤其是,各种酷炫模拟操作之后的理论和理解都变成了黑匣子里的内容。如果只是如此,我们很难谈得上在数值模拟上入门,因为你既不知道你的操作和模型的是否正确(因为你不了解各种操作的数学和物理意义),也很难了解数值模拟的全景。另一个常见的情况是初学者从某类的数值分析方法的书籍,如有限单元法,开始学习。你可能会发现一上来就是变分法或者里兹法等对初学者来说晦涩难懂的难容,然后就是各种未经解释的偏微分方程、物理量,和术语,以及非常局限于某一领域的问题等。这种同样会让学习变得比较痛苦和狭隘。而且,你会发现书上的知识并非都是同等重要的,有可能对你而言,真正能用得上也就是很小一部分,因为你的目标很大可能不是去成为一个有限元理论或者编程的专家。

在接下来的内容中,我将分享我认为的数值分析的实质,也就是,数值分析到底做了怎么一件事情。你会发现,原来这么简单。

转载于:https://www.cnblogs.com/liurgorg/p/9740818.html

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值