




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
COMSOL MULTIPHYSICS简介W. B. J. ZIMMERMAN,B. N. HEWAKANDAMBYDepartment of Chemical and Process Engineering, University of Sheffield,Newcastle Street, Sheffield S1 3JD United KingdomE-mail: w.zimmermanshef.ac.uk最初FEMLAB是MATLAB编程语言和集成开发环境的一个强有效的建模软件包,后来将COMSOL Multiphysics作为FEMLAB的商业用名。可能这本书的大部分读者是被本书的标题和封面所吸引,之前对COMSOL Multiphysics的了解并不多。对于这部分读者,我衷心地推荐他们大家经常参加COMSOL公司的学术交流在高校举办的各类研讨会,因为实践中得到的COMSOL Multiphysics经验要远比从书本、字面上得到的多。写这个简介主要是告诉大家我为什么要写这本书,并且举了一个精炼的例子来说明如何用COMSOL Multiphysics对化工实例进行建模,读者将会看到COMSOL Multiphysics建模的独特优点。如果读者想尽快熟悉COMSOL Multiphysics的图形用户界面(GUI),认识“什么是COMSOL Multiphysics”,显然COMSOL Multiphysics的使用手册(COMSOL网站可以下载)比本章更为有效。作为COMSOL Multiphysics的简介,本章的重点是告诉读者如何确定一个模型并在COMSOL Multiphysics中实现,该方法便于对后续章节的学习。但是,我更希望通过本章的学习,能够激起读者对应用COMSOL Multiphysics建模的兴趣,这也正是本书要讲的内容。1. 本书概述第14章讲解第一个实例部分“FEMLAB化工建模”,这几章再现了我使用COMSOL Multiphysics的美好历程,但这并不是我写这本书的初衷。在我参加的一个长期项目中,需要一个能够适用于各种情况的偏微分方程(PDE)计算引擎,一旦我决定使用COMSOL Multiphysics,就必须精通它。一个非常坏极端的做法是开一门关于COMSOL Multiphysics的课程,让研究生和其他感兴趣的人加入进来,大家疯狂的学习,进而建立一种文化和相应的电脑实验室。我在教过本科生和研究生数值分析、建模和模拟后积累了一些实例。所以我将这些模块实例改编为COMSOL Multiphysics模型,第1章就是这种情况。第2章是以前使用MATLAB PDE工具箱的产物,也介绍了必要的有限元方法。第37章是更有针对性的尝试发掘COMSOL Multiphysics的强大特性,通过系统模型开发,每一章介绍了不同的特点。我查找了自己所有的PDE模型并从同事处挑选了一些例子来介绍这些特点。而第8章是另一种类型。这些章节作为学习COMSOL Multiphysics的例子,与某一特殊实例相比是比较正统的。但是,这些例子着重研究COMSOL /MATLAB建模、分析和后处理的一些非标准影响,这些是非常基础的。如果让我教矢量微积分和MATLAB编程,我将把附录作为学习COMSOL Multiphysics的一个很好办法。图1 在模型导航栏中,预定义的实例模型以树状结构排列。这里是化工模块下的不可压缩NavierStokes模式。模型导航栏中将其定义为二维模型,具有三个独立变量,并使用混合型单元类型拉格朗日p1基于,来求速度u和v为拉格朗日p2,压力p为拉格朗日p12。为保证NavierStokes求解的数值稳定性,常在在有限元法中使用混序离散,并使用SIMPLE1方法求解。模型导航栏允许用户使用预定义的实例模式或通用PDE模式(系数型,通用型,弱型)来建立自己模型。适用读者:本书针对使用COMSOL Multiphysics建模的化学工程专业学生,也可作为其他科研人员和工程师的COMSOL Multiphysics入门书籍。本书目的:本书目的在于介绍COMSOL Multiphysics的特性,这些特性使得建模计算更容易实现。这些特性将通过一些经典化学工程建模例子的讲解来展现,但是它们同时也适用于其它科学和工程领域。侧重点:本书侧重于介绍流体动力学、传递现象和瞬态反应,基本反映了作者在PDE方程数学建模和数值求解方面的研究兴趣。1.1建模与模拟这是一本关于建模与编程的书,前四章的核心是介绍建模模块,其它章节侧重于介绍COMSOL Multiphysics的使用。区别在于模拟具有一定随机性和演变性,例如模拟的积分部分可能使用同一个PDE计算引擎,但是往往包含更多的“用户自定义程序”。本书建模实例的组织结构像一本食谱包含一些MATLAB /COMSOL Multiphysics自带的非常重要的化工实例模型。但是这种讲授方式缺乏数值建模的哲学与方法内容。这本书讲解“怎么做”,但是没有讲模型“为什么要这么做”和“这么做会怎么样”。我们建模主要有两个初衷(1)严谨的物理化学模型有助于我们更好的理解物理现象,通过数值计算的方法可以用数值精确地将其表示出来;(2)更接近实际的近似模型比严格精确计算能够更简便地表示参数对输出的动态影响。本书不打算系统地讲解建模中的方程和边界条件是怎么来的假定各种模型和简化是合理的。但是,对于大多数建模问题,模型本身是否合理十分关键,进行什么样的近似和简化也是建模过程的一部分。对什么建模和如何建模的数学、科学和工程判断不应该割离开来。图2 模型库中包含应用已有应用模式解决的各种问题,是由COMSOL工作人员制作或用户捐赠的。去年模型库容量明显增加。通过浏览COMSOL Multiphysics中的模型和模型库中对应的文档是学习建模非常好的途径。模型库以各种实例方式组织,这里高亮显示的是氢电池的微尺度流动,在化工模块微尺度流动分支下。微尺度流动和MEMS是多物理场模拟中经常遇到的问题2。图3 COMSOL Multiphysics的后处理界面。这里显示了氢电池微尺度流动模型最后一次计算的结果。COMSOL Multiphysics图形用户界面提供了下拉菜单和工具条建模包括建立几何机构结构、网格划分、建立PDE方程和边界条件、结果的分析和后处理。注意底部的状态栏显示了可视窗口中鼠标所在的位置。状态栏上面的信息栏将实时地显示COMSOL MultiphysicMATLAB窗口中运行的COMSOL/MATLAB命令。如果从模型库中导入湍流静态搅拌器数据,信息栏将会显示“Loading data from static_mixer.mat”信息。1.2 为什么使用COMSOL Multiphysics建模?1. COMSOL Multiphysics拥有积分建模环境。2. COMSOL Multiphysics采用半分析方法:通过设定方程,COMSOL象征性地建立FEM矩阵,生成文件。3. COMSOL Multiphysics与MATLAB完全匹配,具备用户自定义编程建模、计算和后处理的功能。同时COMSOL Script是一个类似于MATLAB的积分编程环境,也可以实现这些功能。4. 对于大多数建模问题,COMSOL Multiphysics在模型库中提供了与之相适应的实例模式。5. COMSOL Multiphysics可以实现多物理场建模。6. COMSOL创新性地改进了多物理场模拟可以将逻辑上完全不同的域和模型耦合起来同时求解。例如:由节点、连接、分散相、多尺度模型构成的网络。正如第5和第7章将要讲到的,扩展多物理场非常类似于常见过程模拟软件提供的连接,例如HYSYS、Aspen或者MATLAB中的Simulink环境。COMSOL Multiphysics将这些功能完全耦合进一个PDE引擎,这些优点使其能够与其它CFD软件包,如FLUENT、CFX和ANSYS等竞争。1.3 COMSOL Multiphysics建模策略这本书主要介绍一些我对建模和模拟的认识,也许我的想法能够很好的帮助你使用COMSOL Multiphysics解决建模问题。通观整本书中的建模问题,我总结出几条使用COMSOL Multiphysics建模的方法:1. 阅读模型库和使用手册。2. 建立一个数学模型,并和预制的模型进行比较。3. 是否所有的功能都可以由COMSOL Multiphysics图形用户界面实现?还是PDE引擎只是一个子程序?从以下两方面可以看出COMSOL Multiphysics是一个集成建模环境:1. 数学模型建立、求解和后处理的交互与集成图形用户界面软件包2. 数学模型建立、求解和后处理的MATLAB/COMSOL Script子程序编程语言本书旨在展示如何用这两种方法实现高效的建模。COMSOL Multiphysics图形用户界面在建立问题和求解“假设分析”问题上更容易上手,是首选。而软件包的好处在于输入更便捷,所以值得认真学习其所有特性。图4 选项菜单允许定义各种特性:输入模型常数、划分网格删格设定、可视化设定、编辑表达式等。1.4 COMSOL Multiphysics图形用户界面允许使用精密模版预定义的实例模式为常见的计算提供了模版。模型库提供了学习实例。在COMSOL Multiphysics中建立数学模型通常分为五步:1. 绘图:定义相关的域并建立几何模型并定义域。2. 数学方程:在几何结构(子域物理场)内部、边界或顶点(边界和单点物理场)建立方程。3. 划分网格:COMSOL Multiphysics有着强大的默认网格划分功能,当然也允许用户自定义划分方式。有限元方法的一个传统特色就是允许使用不规则任意网格。4. 求解:求解器有默认的鲁棒性,但是对于求解高非线性系统需要选择合适的方法,例如:收敛判据,活跃方程式,初值,计算误差等,需要一定技巧。5. 后处理:如果不能有效显示计算结果,计算有什么意义呢?图5对应于氢电池微尺度流动定义的COMSOL Multiphysics常数(密度r0=100,速度mu=10-3,基准压力p0=2,扩散率D=1-10,初始集中数c0=1)。一般来说,COMSOL Multiphysics不会假定任何的单元系统,所以使用者可以将物理特性作为常数输入。一些应用模式下会有材料属性数据库,其中包括了一些已经分配好的单元。使用者所要做的就是确保他们的单元在与预先定义的应用模式相混合上是相容的。对COMSOL Multiphysics的一个长期批评之处在于不清楚如何完整地建立一个模型。但是,实际上一个模型可以沿着菜单栏从左到右系统地建立:l 模型导航栏(图1)可以从菜单按钮打开预置的实例和模型。l 选项菜单(图4)为建立、求解和后处理模型时用到的常数(图5)、变量和表达式提供了定义的空间。l 绘图菜单(图6)允许在绘图模式(图7)下定义域。l 物理场菜单建立模型方程。点模式(图8)可以在点设置对话框(图9)中输入点约束。l 物理场菜单(图10)中的边界 模式可以通过边界设置对话框(图11)输入边界约束。l 物理场菜单(图12)中的子域模式允许在子域设置对话框中定义PDE(图13)。l 网格菜单(图14)可以根据网格变量对话框中的数据,通过椭圆网格划分器显示并划分网格。初始化网格菜单项或者工具栏中的三角形按钮可以产生默认网格。l 求解菜单用于设定求解过程中使用的方法与变量。点击求解器变量对话框中的求解按钮或工具栏中的“”按钮开始求解计算。计算结果根据后处理时设定的变量在图形用户界面主窗口中显示,如图3所示。l 后处理菜单提供了多种图形和计算处理方法。l 多物理场菜单允许增加和删除“应用模式”。l 位于菜单栏下方的工具栏提供了非常有用的便捷操作。例如,通过点击某一个按钮就可以实现在三维模式、绘图模式、点模式、边界模式、子域模式和网格模式间的切换。图6 绘图菜单中的绘图模式图7氢电池微尺度流动的单个复合分析几何模型(EXT1)。此几何模型通过简单的几何命令画出(矩形和弧命令),然后,合并到一起在二维工作平面上组成一个邻近域。再将其在深度方向扩展成三维模型与传统方法相比,图形用户界面使得计算建模过程更为简单省时。同时建模的复杂性也比其它软件包增大。从这点来看,既有优点,也有缺点。1.5 COMSOL (Script)编程语言随着编程语言的发展,我几乎学过绝大多数的编程语言BASIC,汇编语言,FORTRAN,PASCAL,LISP,APL,C,Mathematica,C,MATLAB。编程很难,在把握复杂问题核心之前需要考虑错综复杂的命令和严格的语法。工程师通常先解决问题,然后再将求解过程需要的技巧和技术添加进去。编程思路必须要体现这一点。我的FORTRAN编程思路非常简单我找到解决积分步骤和我想得到的“现成”的子程序,然后围绕这个子程序建立一个框架,读入数据,建立存储器,调用基本子程序,后续的“后处理”,最后将数据导出成文件。对于COMSOL/MATLAB编程也是这样。关键是如何用COMSOL Multiphysics的图形用户界面来帮你实现以上步骤。l 选用文件菜单中的“Save Model m-file”和“Reset Mode m-file”选项。l 使用图形用户界面建立模型,然后导出为“.m”文件,其中包括了使用COMSOL Multiphysics在MATLAB中作为编程语言所需要的主要组成部分,这样就提供了所有的子程序、命令语法和逻辑结构,不需要用户了解细节。l 然后可以使用MATLAB“.m”文件功能来导入数据、建立存储器、进行后处理和数据输出。这样复杂的程序通过模块化建立起来,不需要用户编程,甚至了解相关细节。这需要MATLAB编程经验,但是关键是不需要COMSOL Multiphysics编程经验。图8 点模式显示所有的点(顶点和预定义的点),并以黑色立方体形状区别于几何模型。本书提供了一个使用MATLAB语言和函数来实现“用户自定义编程”的很好例子COMSOL Multiphysics子程序。但是在各种情况下,我都尽量用COMSOL Multiphysics图形用户界面来建立模型并用“.m”文件读出。我写过一个关于COMSOL Multiphysics命令/函数的MATLAB程序。COMSOL Multiphysics参考手册提供了所有命令的完整描述,所以我尝试从MATLAB编程中获得图形用户界面实现不了的功能。可能这点也很好地说明为什么每一个COMSOL Multiphysics图形用户界面功能都有对应的MATLAB函数。所以你也完全可以先写出MATLAB“.m”文件,然后读入COMSOL Multiphysics图形用户界面。但是MATLAB工作空间不会产生所有的MATLAB命令,只针对那些可能通过图形用户界面实现的命令,或显示中间步骤的图形用户界面响应绘制几何图形,划分网格,求解和后处理等。如果你自己写了一个“.m”文件并把它导入图形用户界面,你会发现出现多少语法错误。在这方面,MATLAB相当于COMSOL Multiphysics的宏语言。COMSOL Multiphysics 3.2版本以后自带的COMSOL Script也能提供类似功能。在这本书中,默认读者安装了COMSOL Multiphysics和MATLAB/COMSOL Script,并且其中的化工模块可用。但是,我仍会尽量用COMSOL Multiphysics的图形用户界面来讲解例子。图9 点设置对话框。对于不可压缩NavierStokes方程,在边界点上只能直接设置压力值。1.6 总结COMSOL Multiphysics拥有强大的图形用户界面,便于进行假设分析,并且模型求解不需要耗费“编程时间”。COMSOL Multiphysics在“多物理场”和“扩展多物理场”建模方面具有独一无二的优点,甚至对于某些特定实例,COMSOL是唯一有效的建模工具。COMSOL Multiphysics提供了自动导出“.m”文件源代码的功能,降低了建立更为复杂模型的编程难度。将结果导出到MATLAB/COMSOL Script也使得后续计算和分析更简便。COMSOL/MATLAB编程提供了自动控制功能,包括作为后台工作的运行效率(最少的内存和处理器开销)。现在可以通过COMSOL Script将“.m”文件作为批处理工作。结合COMSOL Script的通过java建立用户界面的功能,甚至可以自己创建独立的图形用户界面。图10 物理场菜单的边界模式,可以对FEM模型的边界进行设置和数据输入。2模型库实例图1-12为模型库中微尺度流动氢电池实例,基于不可压缩NavierStocks应用模式。图12标题介绍了相关情况,程序的截屏图片显示了COMSOL Multiphysics图形用户界面的关键特征。从下面开始,我们将介绍每个模型定义时输入数据的相关内容。由于受书面文字和图片的限制,不可能讨论很多的实例,这里将针对个别模型详细介绍其输入对话框及其含义。图11 边界设定允许用户在预定义的边界条件范围内设定边界数据。这里定义流出边界压力为20。待求解的方程显示在边界设定对话框的顶部左侧,而被选中的边界在滚动条窗口和图形显示窗口中都高亮显示。2.1 氢电池微尺度流动图1所示的模型导航栏允许用户在选择预定义的实例模型基础上,进一步建立用户自定义“多物理场”,形成复合模型,这样使得用户有权使用这里列出的模型和FEMLAB用户、COMSOL开发工作组多年来解决和建立起来的各种模型。本节将通过“微尺度氢电池”实例介绍典型的复杂三维几何结构的微尺度流动2。模型库如图1所示,打开菜单树,从中可以找到该模型,如图2所示,右侧会看到微尺度流动氢电池的简要介绍。点击“OK”键打开COMSOL Multiphysics图形用户界面,这里的几何结构、模型方程和边界条件已经全部设定完成。图3给出了存储在文件“hcell.mph”中的模型后处理结果。mph文件是用于存储COMSOL Multiphysics变量和完整运行环境的二进制文件。后处理窗口用颜色分布给出了上次计算结果的浓度分布。下面通过模型方程和变量来分析该实例。图12 在微尺度流动氢电池模型中只有一个子域,就是在绘图模式中绘制和扩展出的单个复合几何结构。模型通过一系列的对话框进行设定。沿着菜单栏从左到右分别打开下拉菜单就可以看到相关的设定过程。打开选项菜单,“Constants”菜单项高亮显示。选项菜单可以定义本地数据库,包括常数、耦合变量、表达式、微分规则和显示尺度。这里我们只需要看常数项。图5显示了常数对话框。可以看到在定义的五个常数中,ro1,mu1000。注意这里是纯数字,不包括单位。到目前为止,用户可以使用一套自己定义的模型单位,或者定义使用无量纲控制变量的模型。这是一个不必要的繁琐工作。COMSOL Multiphysics在材料库/系数库中使用了多套单位系统。你可以在“Physics”菜单模型设定时定义单位系统。我养成一个习惯,通常使用无量纲方程。常数数据输入格式允许是包含其它常数的数学表达式,这不容易形成单位的混淆。图13 子域设定对话框可以进行PDE方程对应子域的系数设定。这里选择子域1,即图12所示的子域。这里输入选项菜单常数项对话框中的常数(ro和mu)。“Init”选项卡用于设定初始条件。“element”选项卡用于定制基元设置单元参数。下面看“Draw”菜单。这里只切换为绘图模式,图7所示灰色复合几何体EXT1是模型初始建立时构造的几何结构。注意到绘图工具栏取代了后处理工具栏,位于窗口左侧。下面用这些工具来输入新的几何数据。EXT1是一个简单连通域,但是我们并不限于任何一个单一域或者单连通域。COMSOL Multiphysics 可以使用这些图形元素以及逻辑运算操作符(如并和交),并用它们来建构几何图形。 几何结构可以在绘图模式下进行简单绘制,也可以通过MATLAB/COMSOL Script函数来实现,这在第六章几何连续性中介绍。由于不需要修改几何结构,下面进行点模式设定,如图8所示。这里所有需要分析设定的顶点都以黑色点显示。你也可以在点模式下额外增加FEM模型和后处理所需要的附加点。FEM允许以弱形式设定系统方程,对于偏微分方程,它等价积分形式的守恒方程。弱形式可以用来处理没有可以额外添加的PDE等价方程,例如点源项和约束。可能后处理信息只需要某一个点的值,所以在点模式下设定一些点会使得网格划分便于计算出该点的精确值。图9给出了点设置对话框,微尺度流动氢电池模型没有附加的点约束。图10将我们目光移向边界模式,如图所示选择边界下拉菜单,所有边界显示在主窗口中。如果用户想定义一个沿边界长度变化的边界条件,可以通过使用模型导航栏中设定的独立变量,如三维模型的x,y和z坐标,或者使用内在变量,如沿边界长度定义的弧长s。图11给出了边界设定对话框。该模式允许设定边界条件为不可压缩NavierStocks方程模式预定义的多种条件中的一种。再次强调,左上角显示了边界1上定义的方程。图12告诉我们如何选择子域模式。这里只有一个子域(高亮显示)。子域模式通常是PDE系统的设定区域。简单的PDE方程就是在子域中设定的方程。但是在预建立的实例模式中,方程模式为“硬连接”,只能在子域模式下设定系数。图13为域1的子域设定对话框,左上角为该实例模式“硬连接”的方程。其中系数输入框可以使用常数,包括独立和非独立变量的表达式,甚至MATLAB/COMSOL Script“.m”文件函数或者COMSOL Multiphysics插入或内嵌函数。图14 网格模式显示了已划分的网格,同时也能够根据网格变量使用椭圆网格生成程序进行网格划分。网格统计给出网格特征的数量信息。图14给出了保存结果的网格模式。在网格模式、求解模式和后处理模式中定制求解方法。但是对于这一点,我们已经详细分析了一个完整的FEM模型。网格、求解和后处理模式与数学相关,我们将在第一章中简单介绍一下。点击工具栏上的求解按钮(),将会计算出该网格和默认求解设置下的计算结果。后处理模式(图3)用颜色分布给出了此时表面速度U的分布求解域浓度c的分布。从本例中我们可能没有学到很多微尺度混合流动的知识,但是我们掌握了定制分析一个模型的必要步骤。在后续章节中还会涉及这些步骤,这相当于定制了一个完整的PDE或FEM模型。这里介绍的微尺度流动氢电池和几何结构绘制方法都是比较高级的模型。新手总是喜欢一下子就能够进入非常高深复杂的模型。本书正好相反,我们在第一章和第二章中进行了简化,尽量引入基本步骤,甚至比COMSOL Multiphysics自带的例子更为简单。为什么要这么做呢?因为跑之前先得学会走,即便你在其它方面已经做得很好。当然,如果在第七章还不能让你感觉可以“飞”的话,那这本书会很失败。复杂计算模型中存在的困难,用户自己不一定能碰到,所以去掉这些神秘的部分,我们从最简单的开始,培养使用COMSOL Multiphysics的基本能力。2.2 为什么介绍微尺度流动氢电池模型?显然,我们并没有从微尺度流动氢电池模型例子中学到多少微尺度混合流动的知识,我们选这个例子是另有原因的,其出发点在于使第一次接触COMSOL Multiphysics的读者能够对COMSOL Multiphysics图形用户界面设置和数据输入的组织方式有一个直观的感受。即使读者不懂COMSOL Multiphysics,也能够讲解该模型包含的知识内容,但是从理论上讲,阅读过程比实际操作更有用。基于这个原因,如果你现在不是COMSOL Multiphysics用户,我建议你索取一下个COMSOL 和的MATLAB试用证书试用版本。Mathworks3和COMSOL4公司将会免费提供其产品的试用证书版本,软件也可以从网上下载或寄光盘给你。COMSOL Multiphysics的用户手册非常好,在开始第一章之前,建议你看一下。在FEMLAB5化工模块还没有引入我的第一个模型之前,我已经看过COMSOL Multiphysics的所有文档,也很推崇它。但是即使模型库和化工模块中有大量非常棒的例子,我认为COMSOL的参考文献中还是缺了一点东西。我想它缺少一位资深用户的看法,请原谅我的自大,我想就是缺少我的看法!但是你现在应该把本书看作是COMSOL/MATLAB的一个简单的宣传广告。我认为如果不把COMSOL/MATLAB建模清楚地标注在书封面上是不诚实的表现。现在市面上有很多建模软件包,但是COMSOL Multiphysics是我看到的第一个基于PDE方程引擎的常规建模工具。方程是数学建模和物理学的语言,而COMSOL Multiphysics针对用户群将这种语言作为目标。所以这本书写了我个人学习使用COMSOL Multiphysics进行化工过程建模的经历。下一节我将给出每一章的大纲。作为一个有将近40年计算建模和FEM经验的工作者,在写这本书的六个月当中,我用自己写的程序或其它经典的数学分析程序得不到这么好的结果。本书只介绍了COMSOL Multiphysics软件,不涉及其它工具。一些读者可能留意了Mathematica、MATLAB和gnuplot等软件。刚看到这本书时,我特意列了一张FEMLAB用户和我学生们给出的反面评价的清单,但是在2002年新版出来以后,这张清单消失了。现在我对COMSOL Multiphysics只有五点抱怨的地方:(1) 错误信息太模糊。(2) 向后兼容有问题。(3) 在网格划分方面,图形用户界面没有给出使用的所有句柄。(4) 一些老版本的求解器特征没有了。(5) 模块、模型库例子和新特征急剧增加,即使是有经验的用户也很难跟上进度。之前COMSOL Multiphysics用户抱怨很多后处理操作需要MATLAB编程基础并需要将结果导入MATLAB工作空间,COMSOL Multiphysics图形处理功能非常差,错误提示消息含糊不清。现在对这几方面都做了改进。虽然MATLAB“.m”文件程序比使用图形用户界面更容易发现问题,但是指出语法错误还是要比C/FORTRAN难。这主要是由于MATLAB工作空间搜索变量非常类似于C语言调试器梳理撞车信息的做法。也许将来COMSOL也会发展使用图形用户界面的工作空间。虽然已经有很多正面评价,但是COMSOL Multiphysics仍然一步步地扩展它的功能。以前必须手动编程的代码现在都发展成了子程序,例如移动边界(任意拉格朗日欧拉转换)模式。现在多栅求解器已经是标准选项,这对研究复杂的,多尺度动力学非常重要。但是建模和概念的错误仍然很难发现。我们可以把这些问题留给用户。COMSOL Multiphysics可能从不产生错误信息,对于每一个新手用户,我会告诉他们哪里边界条件不一致,例如在通用PDE模式中设定01。但是在很多情况下,COMSOL Multiphysics发生的不是简单错误,而是不满足模型的含义、概念或语法错误。对于这一点,唯一的建议就是“多问”除了经验没别的办法。这本书中包含了我的很多经验。将这本书看作是本食谱,既告诉你那些是好的食谱,也告诉你那些是坏的。例如,在第七章中,在得到最好结果前,我尝试用四种方法建立人口平衡方程模型。所以就像从成功中可以学到经验一样,错误中也可以学到。在写这本书的六个月中,每一个例子不论好坏都包含在这本书中。很多时候我感到疑惑和挫败,但是我不断鼓励自己,终于还是完工了。我很高兴我没有破例挑选一些模型。当然,我没有给出模型的每一步具体计算步骤和“万一”的情况。3 章节大纲第1章介绍COMSOL数值分析基础,其中介绍了很多人为设定的模型例子,单从例子来看COMSOL不是最好的计算平台。对于数值分析,寻根、步进式数值积分、常微分方程数值积分和线性系统分析方法非常普遍。它们构成了我以前的一门关于FORTRAN编程和Mathematica求解化工问题的课程。根据教学逻辑,第1章介绍一些基础知识,便于我们理解COMSOL是如何工作的。以常见的化工工程为例,包括闪蒸、管式反应器设计、扩散反应系统和固体中的热传递。但是,可能这里最重要的特点是引入零维模型的概念。零维模型由单一基元组成,引入一个标量,所以可以定制随时间变化的ODE方程或者几何方程。该结构对描述由混合(偏)微分几何方程或方程系统非常重要,在后续介绍的COMSOL求解复杂模型扩展多物理场中非常有用。第2章可能被认为是有限元方法(FEM)教科书的正常出发点。但是我不认为COMSOL只是一个有限元工具,而是一个碰巧以有限元方法求解的建模软件。COMSOL降低建模难度的关键工作在于:(1)将以符号形式表示的方程系统转化为可以进行数值计算的算法;(2)提供了各种“一键式”数值求解、分析和后处理的工具,或者(3)在MATLAB中,通过强大的“脚本语言”编程,调用子程序(调用函数)实现以上功能。过去如此多的偏微分方程建模工作放在执行计算机的代数运算法则上,以至于人们没有机会认真考虑建模过程。如果为了测试一个方案,需要先花三个学年的时间创建工具,谁会考虑这种建模方案?COMSOL是建模者的一个范式转变思维转换它使人们在不需要新的编程工作前提下考虑“为什么这么做”的问题。但是,COMSOL使用有限元方法(FEM)作为偏微分方程计算引擎。第2章概括性的给出了如何在COMSOL中实现有限元方法。对于有经验的FEM使用者来说,COMSOL把特定的PDE象征性的翻译成FEM扩展刚性矩阵刚度矩阵的集合刚性矩阵刚度矩阵、荷载向量、以及描述了边界条件和辅助条件的拉格朗日算子辅助方程。第二章通过典型的线性、二阶偏微分方程(椭圆、抛物线、双曲线方程)介绍了偏微分方程和有限元方法的这几方面,在此基础上着重介绍了如何用拉格朗日算子的方法来处理边界和辅助条件。第3章是关于多物理场建模的内容。多物理场是什么?为什么COMSOL能很好的求解多物理场?这里有很多多物理场模型的应用:热传导,非等温化学反应器,多孔颗粒中的异相反应。此外,还介绍了非线性求解器和变量连续性。我不会试图在第3章中具体介绍多物理场的建模方法本章中,我所具体介绍的多物理场的建模方法并不影响第三章的主要内容。多物理场建模意味着同时处理许多偏微分方程,在建模过程中将预置的PDE方程混合匹配,通过符号转换建立有限元方法,这对用户来说是透明的。第4章是关于扩展多物理场的内容:耦合变量和拉格朗日算子的使用。应用实例包括:异相反应器,反应器分离器再循环系统,缓冲器建模,细胞生物反应器建模等。从第5章开始介绍高级建模内容非线性动力学和仿真。第6章介绍如何处理几何连续性,第7章介绍积分方程和逆问题。这3章主要来自作者的研究内容,同时也有新的问题和对以前工作的扩展。第57章不像14章那样系统研究COMSOL的功能,而是提出问题“COMSOL能解决我感兴趣的稳定性理论(第5章),复杂几何形状和调节域(第6章),逆问题(第7章)吗?如果我知道问题和需要的答案形式,COMSOL能提供相应的解决方法吗?”这几章内容具有针对性,但是可以为大多数用户提供丰富“技巧”。如何从COMSOL图形用户界面中读取和输入信息是该软件的一个缺点。我的诀窍是通过MATLAB/COMSOL Script输入/输出功能来实现。第8章以后是纯粹的应用和案例学习,这些并不是全由我一个人写的。在很大程度上,57章与我的研究内容有关,用来演示COMSOL的功能。第8章及以后的内容来自我的同事,我们认为COMSOL 和或14章中某些概念可能会用到这些内容。这些章节的合作编写者还有其它安排,他们用叙述性语言撰写了这些章节。第8、9章是关于由表面动力学和传送控制的两相流动建模。该内容是由我的一个博士生负责的。仿真反映了研究者对复杂动力系统进行数学实验的需求,进而加强对实际试验过程的理解。这要比真实试验灵活的多,能够提供更细节的数据,但是可能以各种建模错误为代价。第10章是一个纯粹的流体动力学问题,并且举了一个微尺度混合流动的例子。第1114章集中介绍混有传递方程的动电力学、等离子体、电化学和MHD现象的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论