1、课程名称:有限元编程基础
2、授课人:何晓明 副教授
3、授课人单位:美国密苏里科技大学
4、开课时间段: 2020.11.29-2021.1.17,共八周,每周周日上午9:30-11:30;
(课程答疑时间, 根据课程需要再作安排)。
5、授课方式: 线上(腾讯会议, 会议链接请扫描文末的二维码入群, 每次课前会发送会议id和密码)。
6、预备知识:
(1) 微积分,线性代数,和数值计算基础知识;
(2) 偏微分方程基础知识;
(3) MATLAB或者C语言编程基础。
7、课程主要目标:
(1)讲解有限元算法通用结构以及相应的基本有限元程序的通用结构;
(2)引导学生从零开始逐步写出自己的通用结构有限元程序包(而不是理解和使用某个已有程序包);
(3)从而完全掌握给各类方程独立写基本有限元通用结构程序的方法;
(4)具备向功能更强大结构更复杂的有限元程序包扩展的能力。
课程主要内容和步骤
(1) 从一维二阶椭圆方程的程序讲起,逐渐拓展到二维二阶椭圆方程, 二维二阶抛物方程,二维线弹性方程的程序,最后简单介绍将来对二维Stokes方程,二维Navier-Stokes方程(都包括稳态和非稳态),还有三维方程的程序拓展思路(也就是有限元编程基础II的核心内容);
(2)一开始用最简单的一维二阶椭圆方程(Dirichlet边界条件,使用一维线性元),定义并理解有限元程序的通用结构,再在同一框架结构下(大量通用程序部分不变,每次只需要做少量的修改),逐渐向不同的有限元,不同的边界条件,二维三维,非稳态,非线性情况,去拓展自己写出来的程序包(不是理解和使用某个已有程序包);
(3)对每一个方程,先用课件依次讲解它的弱格式,有限元离散格式,矩阵格式(离散后的线性系统),程序模块化和数据结构,伪代码;然后通过课上的指导性编程(学生跟着老师一起从零开始写程序),按照定义好的程序模块化和数据结构,带领学生逐步将伪代码部分翻译为真实代码,并讲解代码与格式对应的关系,从而将程序与公式中的概念一一对应起来;再通过指导作业,要求学生将其余伪代码类似翻译为真实代码,并调试通过;最后通过指导小课题任务,要求学生将基本代码升级为具备更多功能的代码。
授课人介绍
何晓明,美国密苏里科学技术大学副教授。主要的研究领域是计算科学与工程。研究问题主要包括界面问题,计算流体力学,计算电磁学,非线性偏微分方程,随机偏微分方程,控制问题等。他将计算数学与实际工程应用问题结合起来,在科学计算和应用领域做了大量的工作, 在国内外学术期刊发表学术论文60余篇。2002年和2005年在四川大学数学学院获学士学位和硕士学位,2009年在弗吉尼亚理工大学数学系获博士学位,2009年至2010年在佛罗里达州立大学作博士后。2010年至2016年在美国密苏里科学技术大学任助理教授,2016年晋升为副教授,并获终身教职。担任计算数学领域国际期刊International Journal of Numerical Analysis & Modeling的编委,是多个著名国际学术期刊特刊的Guest editor。2014-2016年担任SIAM Central States Section第一任主席和前两届年会的组织委员会主席。2019年起担任Midwest Numerical Analysis Day的执行委员会委员。