计算机专业学comsol,有关COMSOL的学习心得,与同是初学者的朋友共勉! - 仿真模拟 - 小木虫 - 学术 科研 互动社区...

接触COMSOL也有一年时间了,相信很多朋友都有这样的感触,那就是完全不知所措,无从下手。根据网上的一些经验,参考案例,看用户手册,折腾了几个月甚至大半年的时间,对于模型计算的各种错误一头雾水,完全不知所云,胡乱的瞎改,盲目的调试,在电脑前一坐就是一小天,茶饭不思,那叫一个折磨。甚至有几天下定决心要翻译用户手册,因为有关COMSOL的教程或者知识实在是少的可怜。不过,对于我个人研究方向的模型,经历这么长时间的不断尝试,也总算是开了窍。本文希望对初学者,或者说是完全刚接触者能对COMSOL建模有个概念性的了解。错误之处,还请指出改进,在下不吝赐教。

1.先谈谈仿真建模,数值模拟,数值分析,和计算物理。

这几个概念相信大家都多少有些了解,如果是搞工程,化工,结构力学,电子学等专业朋友,可能会使用各类仿真软件做仿真,其中就会包括COMSOL。实际上仿真建模或者说数值仿真,在工程类学科中比较常听到。比如,学习过流体力学或者计算流体力学的朋友可能最常见的例子就是飞机机翼的流场仿真,或者钝头体前的激波仿真等等。而数值模拟常出现在物理类学科当中的计算中,比如做分子动力学的,光场的,模拟等离子体产生等。那么计算物理,顾名思义就是数值的方法来求解物理问题。对于数值分析,大家都不陌生,就相当于如何来求解具体方程的一个个算法,而且数值分析也是研究生数学类的基础课程。以上是我个人的一些理解,其实说这些主要是为了告诉初学者,不论你是用COMSOL也好,ANASYS也好,还是其他的商用的,内部的,自编的程序,对于数值计算一定要了解数值计算的核心过程。事实上,仿真,模拟,计算都是一回事儿,那就是解方程。

不同类型的方程,不同的编程难度,不同的算法,我们有多种选择的手段。但是常用的就几个,比如有限差分法,有限体积法,有限元法是我们经常用到的离散方程的方法。既然做模拟,做仿真,那么你的问题一定是无法用解析的方式来计算的,所以数值计算才会显得尤为重要。接下来谈一谈数值计算的核心过程。

2.如何建模

这里的建模,我指的是全过程,并不是指如何使用软件,其实软件这东西想学会还是要多练,就和打游戏没什么区别,都是电脑程序嘛。那么数值计算的核心过程就是如何把物理问题,工程问题转换为数学问题,然后进行求解。之所以有很多刚接触COMSOL的朋友完全不知道自己的研究方向应该使用什么模块来计算,就是对建模的核心问题不了解。虽然COMSOL把相关模块分的特别细,但是不代表这些模块能够满足所有的未知问题,因此,这就是需要我们自己慢慢摸索。我谈谈自己的经验。首先呢,对于一个需要模拟的问题,一定要对这些问题的物理过程有个全面的认识,这样才能很快的将其转化为数学描述。打个比方,管道流动问题,那么研究的是单相流动呢还是多相流动,是层流呢?还是湍流呢?,速度是否超声?是否考虑压缩性?是否考虑温度的变化呢,有没有其他耦合场存在呢?所以,只有把所有需要考虑的物理过程都牵扯进来,才能更好的模拟出来。当然,在建模的过程中,总会有需要舍掉或忽略的点。其次,认识物理过程之后,需要把它们通过数学方程来重新描述。这就是最核心的问题。只要知道了需要求解哪些方程,才能更快地去建立求解模型(这里包括更好地选择所要求解的控制方程,初边条件以及所要研究的区域-计算域)。

3.关于COMOSL的使用

COMSOL是基于有限元方程来求解各类方程的,所以,在这里我建议初学者们,虽然不必要去通学有限元的知识,但是如果你完全不懂有限元,那可能会遇到很多问题。因此,适当了解有限元方法是必要的,特别是需要自己加入自定义方程的朋友。接下来简单谈一下使用COMSOL的一些过程。较好的建模,是需要大家深刻理解自己模型的控制方程,初始条件以及边界条件,以及要研究的计算区域。很多时候建模费劲,就是因为对自己的方程不了解,不知道如何使用边界条件。真的是说多了都是泪啊。不过,等你对自己的模型很熟的时候,你会发现COMSOL确实是个比较不错的软件。

那么编程或者说建模第一步,就是把你所用到的参数和变量在COMSOL中事先定义好,好处就是修改方便,一目了然。

第二步,建议大家尽量把所有的高级设定功能都打开。特别是方程视图,因为建模的时候,我们需要时不时地去查看COMOSL内置方程中的一些变量和方程是什么样的,是否需要做修改。

接下来画图,建议大家尽量用最少的曲线画出你的计算域,并且计算域中尽量不要出现无关的边界或线条,因为会影响网格的划分。另外比较好的方式是把必要的边界和区域用显示的方式定义,方便添加到模块中。

对于模块的设定,当然前提是要选对模块。每个模块都会求解某个或多个物理量,比如速度,压强,温度。那么对于存在耦合的物理量,建议大家使用多物理场接口中的模块来进行耦合。虽然模块和模块之间的设置当中也存在对应的选项,但是需要手动添加,往往会忘记设置。要事先定义好材料的属性是重要的。因为材料属性如果是非线性的,它可能会影响模型的非线性程度,会增加计算难度。另外一个重点是,要清晰的知道,每求解一步,哪些物理量之间存在耦合。这些工作当然都是需要在建模之前就应该清楚的。这样做的目的是为了将来调程序做到心中有数。对于单向耦合或多向耦合的物理量之间,一定要知道那些因素会影响计算的收敛性。比如,电压的计算,如果是用电流和电导率来计算电压,你就需要知道,温度对电导率会不会有影响;如果会,那么焦耳热同时也影响温度。这就是物理量之间的耦合。在计算的时候,对于耦合比较强的模型,大家可以使用分离步计算,而非全耦合。

对于边界条件来说,往往是计算不下去的根源所在。边界条件就像个川剧大师,怎么改都不对。那么这里的建议是,对于影响较大的边界条件,可以利用递增函数来减缓边界载荷,这比直接在边界设定条件要好很多。

对于求解器来说,很惭愧,COMSOL的求解器实在太多了,并且一直没空去研究它们。不过常用的求解器无非就那么几个。COMSOL的求解,我认为包括两种求解方式,全耦合和分离步,两种求解方法,直接和迭代。然后就是里面具体的一切求解算法。对于耦合强,非线性较强的模型,个人建议使用分离步来计算。而对于一般问题,直接使用全耦合即可。对于计算内存问题,搞模拟,硬件不应该是个问题!

4.最后

希望对初学的朋友能所帮助,本人也只是了解自己方向的模块使用,绝大多数模块基本不懂,所以,希望大家多多分享自己的经验。我常用的是流场和温度场还有电磁场。祝大家建模成功。

更多学习经验传送门:http://muchong.com/t-12010954-1

[Last edited by bfamq on 2018-3-23 at 16:55]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/508047.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

兰州交通大学计算机科学与技术学院,兰州交通大学计算机科学与技术

职朋圈友兰州交通大学 | 计算机科学与技术 | 本科算机科学与技术学科为甘肃省省级重点学科,为硕士一级学科授权点,拥有国家级计算机实验教学示范中心、国家级交通信息类创新人才培养模式实验区。专业师资力量雄厚,2009年被授予国家级“计算机…

圣地亚哥的计算机科学在哪个学院,加州大学圣地亚哥分校计算机科学在哪个学院?...

加州大学圣地亚哥分校计算机科学在工程学院加州大学圣地亚哥分校雅各布工程学院成立于学校建校之初的1964-1965年,共开设6个系,拥有250多位世界级教师,开设本科、硕士和博士三个阶段的课程教育,目前共有本科生6025名,硕…

计算机网络检错码和纠错码的特点,检错码和纠错码有何不同?试比较在网络通信中使用时各自的优缺点。...

检错码和纠错码有何不同?试比较在网络通信中使用时各自的优缺点。更多相关问题心理发展的速度可以有个别差异,可以加速或延缓,但发展的顺序一般不能改变。这说明心理发展具有(德国邓克尔发现:人看到某物品具有一种功能后就很难看出…

云星空计算机名访问不可以,03.PLM系统访问金蝶云星空(webapi):读取基础资料编码、名称...

1. 需求描述PLM系统中的物料,BOM同步到金蝶云星空系统中时,构造的json数据中,一些基础资料字段需要传递编码,而不是名称。 本接口提供获取所有基础资料的编码、名称,可作为PLM系统中的对照关系。2. 接口定义2.1 请求地…

js复制html到粘贴板,用clipboard.js实现纯JS复制文本到剪切板

以前很多人都是用ZeroClipboard.js来实现网页复制内容,火端也是用它。ZeroClipboard是利用flash来实现的,ZeroClipboard兼容性很好,但是由于现在越来越多的浏览器不支持flash,导致一些没法正常使用了。今天火端开始使用clipboard.…

计算机 国际顶尖级会议排名,计算机学科国际会议排名.doc

计算机学科国际会议排名中科院计算所会议会议名称会议介绍代表领域1ACM SIGCOMM: ACM Conf on Communication Architectures, Protocols & AppsACM的旗舰会议之一,也是网络领域顶级学术会议,内容侧重于有线网络,每年举办一次,…

教师计算机excel培训教案,Excel培训教案..doc

三灶中心小学教师信息技术应用能力培训教案(excel部分)excel培训计划安排2学时,通过实例来进行讲解。具体讲解内容及时间进度视老师们的掌握情况酌情安排。附实例如下:培训内容:实例一: 建立与编辑工作表一、实验目的1. 掌握启动和…

计算机程序设计a,计算机程序设计 A(1620401)

计算机程序设计 A 是一门介绍了 C 语言基本概念并将其在程序设计中运用起来的课程。在本课程中,将会介绍如何用 C 语言完成基本的输入输出、数学运算、分支结构表达、循环结构表达;同时,我们会学会如何使用函数对程序进行组织、写出良好的程序…

计算机设备的存放,计算机硬件储存设备与网络储存的发展现状

计算机的出现,改变了人们的生活和生产,而计算机硬件技术的发展,则为计算机储存开辟了新的发展方向和途径。而随着时代的进步,计算机储存技术的发展也是日新月异,现在我们所使用的云储存技术,就是储存技术发…

计算机考研408哪个视频好,408计算机考研视频课哪个好

408计算机考研视频课哪个好?如今,考研培训班比比皆是,选择适合自己的成了很多考生的难题。如今的考研网课辅导,很适合考生复习备考。网络学习很方便,只要你有电脑或者手机,不管在哪里都可以学习,没有时间和地点的限制,另外不懂的知…

计算机键盘没有fn,键盘Fn键失灵怎么解决?键盘Fn键失灵的修复方法

电脑键盘是电脑输入设备中最常用的设备之一,也是大家使用最频繁的的设备。其实键盘Fn键占据着很大分量,Fn键能够实现很多功能,如控制音量、打开关闭摄像头、屏幕亮度调节等。如果Fn键失灵的话,那就会对电脑造成很大的影响,有什么办法修复?下面…

计算机cpu风扇不转怎么办,计算机CPU风扇不转怎么办

据一些计算机用户反映,一些组装机在使用时并没有什么异常,但在主板BIOS中,CPU风扇转速报告显示为0 rpm(转/分),那么这种情况是不是表示你的cpu风扇不转了呢?其实未必!由于目前大部分的ATX架构主板都支持风扇…

vs简易计算机等于号代码,等于(=)vs.

不同算子LIKE和是不同的操作者。这里的大多数答案都集中在通配符支持上,这并不是这些操作符之间唯一的区别!是对数字和字符串进行操作的比较运算符。比较字符串时,比较运算符将整串.LIKE比较的字符串运算符。逐字逐句.让事情变得更复杂的是&a…

逆水寒最新的服务器7月12日,《逆水寒》7月12日更新内容一览

六、 优化和调整1. 在论武中自动禁止辅助吃药功能,避免频繁提示“不可以吃非论武专用药”的消息。2. 优化队伍和帮会聊天频道的消息显示,减少大部分玩法提示消息在队伍和帮会频道的显示。3. 百里传音和千里传音不再会被系统消息顶掉。4. 为防止恶意刷屏&…

网站的服务器分哪几种,服务器有哪几种分类?_服务器可分为四种类型

办事器能够按使用分:OA办事器、数据库办事器、流媒体办事器、高机能计较办事器、逛戏办事器等。软盘接口是软盘取从机系统间的毗连部件,感化是正在软盘缓存和从机内存之间传输数据。分歧的软盘接口决定灭软盘取计较机之间的毗连速度,正在零个…

jqgrid ajax加载数据,如何通过ajax在jqgrid中加载数据(json)?

我有一个函数(在Java小服务程序)返回该JSON格式:[{"citta":"XXXX","via":"XXX","telefono":"1111-11111","provincia":"XX","clienteDesc":"Prova","cl…

ajax preview,In jQuery, using ajaxSend to preview the url built

How can I construct my ajaxSend call, this seems like the place to put it, to preview what is being passed back to the broker? also, can I stop the ajax call in ajaxSend?..so I can perfect my url string before dealing with errors from the broker?This is…

ajax可以发送文件,通过Ajax上传img时如何发送文件信息

我正在尝试拆分上传到ajax方法的图像文件。所有的html和JS都在一个文件中,然后我组成了一个包含所有PHP的PHP文件。我正在努力的是,我不确定如何将图像文件信息发送到php文件,然后如何使其余的php照常工作。截至目前,这行代码$p_i…

就业信息网进行服务器维护,服务器安全武汉大学黄石理工学院就业信息网.pptx...

构建安全的网站服务器;武汉大学网络拓扑; 对任何网络应用来说,网站服务器都是必不可少的,但服务器的安全一直是另人烦恼的问题。如何配置一台相对安全的服务器是我们必须要了解的,由于Windows系统的漏洞和安全问题相对而言比较多,…

ajax接受的格式,关于ajax接受json格式的数据

var xmlHttp "";function getXmlHttpRequest(){if(window.XMLHttpRequest)xmlHttp new XMLHttpRequest();elsexmlHttp new ActiveXObject("Microsoft.XMLHttp");return xmlHttp;}function checkName(){//获得HttpRequest对象xmlHttp getXmlHttpRequest…