comsol积分函数_COMSOL教程- 巧用PDE、ODE耦合方程实现变量的时间积分或者空间微分...
有朋友反映咱们杂货店里推送的高水平SCI论文太过物理,对于一些工科或者其他专业人来说可能有些障碍。模数哥以后也会经常写一写具体的Comsol操作教程,当然也不会像案例库里那样具体“手把手”,而会强调对软件算法或者底层数学规律的介绍。
今天的话题是如何对变量(variable)进行空间微分或者时间积分。可能朋友们会比较诧异:这有什么难的呢?确实在Comsol软件里有具体的函数或者算法,可以帮助我们进行这些操作,如d(f,x)即是对变量f沿左边x方向偏微分,timeint (t1, t2, expr)是对表达式expr在时间t1到t2内进行积分,但是有些情况下,这些操作符并不能直接解决我们的问题。福利1:百度“常用comsol的操作符和数学函数”,即可很容易找到相关更多资料。
问题1:变量的空间微分
问题描述:我们拿一个案例库中ACDC模块的helmholtz coil为例,请问各位能否画出mf.Hx沿x方向的微分(即Hx在x方向的梯度)呢?当我们在后处理中尝试画出d(mf.Hx, x)时,Opps,结果为零,这明显是有背于真实数学和物理的!福利2:可以百度一下“Plotting Spatial Derivatives of the Magnetic Field”找到Comsol官网的相关教程。该教程介绍了如何通过新建耦合偏微分方程(Partial differential equation, PDE)来对mf.Hx变量进行空间求导,但是里面语焉不详,并未介绍一些底层的数学原因。
要搞清楚这里的原因,我们首先要知道有限元算法中形函数(shape funcion)的概念。在用网格格点对整个仿真系统进行离散化时discretization,每个格点都是一个未知的方程,而这个方程的表达形式,就可以简单理解为形函数(其实并不严谨)。比如一般在力学模块里,常用的形函数是朗格朗日二次形函数(Quadratic Lagrange),即每一个格点的数学展开形式是二次多项式。如下图所示,对于空间任意一点x的数值f,我们均可以通过其周围几个点的数据进行插值interpolation得到。
如果我们要求解空间任意点x处变量f的偏微分,数学上其实是先对周围各点的形函数进行偏微分,再做插值处理得到x点的空间导数。以x1点为例,它的一阶微分是f1x=2a1*x1+b1,f1x中的x表示f1的x偏微分。它的二阶微分是f1xx = 2a1,很明显,它的三阶微分就是0了。所以这种有限元求微分的方法决定了朗格朗日二阶形函数下x点的三阶微分就是0——物理和数学上都是错误的。
那么怎么样才能求解变量f的三阶微分呢?方法就是我们可以新建一个PDE方程并将f1xx耦合为该PDE的主变量u,一般地,该PDE方程也默认是用二阶朗格朗日形函数表示,如下图,所以我们便可以再次对u(即f1xx)进行空间求导了。所以理论上,利用这种不断耦合到新PDE方程的形式,我们可以实现对f变量的任意阶空间求导或微分。
现在让我们再回到前文所述helmholtz coil案例中,该模型用的接口是3D的磁场Magnetic Field (mf),该物理场的变量是磁矢势Magnetic Vector Potential A,3D情况下A是一个矢量,而磁感应强度便是该矢量的旋度:▽×A = B,对矢量求旋度的数学处理就等效为二次偏微分了,所以我们无法再对磁感应强度B进行空间微分。这也是我们发现d(mf.Hx, x) =0的原因。
具体如何新建并耦合系数型PDE方程来对磁场H求其空间梯度,朋友们可以参考上文所述Comsol官方blog:
结果如下,磁场的梯度u1x(即d(mf.Hx, x))主要出现在线圈的周围:
我这边重点介绍一下这个系数型偏微分方程。如下图所示,该方程其实是一个万金油式的功能型方程,几乎可以包含宏观尺寸各类物理问题:
我们所享用的Comsol中现成的各个物理场接口,其实也大都是该方程的变种(各种情况的简化)罢了,比如稀物质扩散(tds)或者热传输场(heat transfer),都是用的下图所示扩散方程:
所以Comsol软件的前身是Matlab求解方程的一个工具箱FEMLab,后来独立更名为Comsol并一直沿用至今,所以Comsol的二次开发就是采用Matlab编程,这也决定了Comsol仿真的一些劣势(因为底层程序语言效率的不足,在非线性、流场、结构场粘弹性仿真等方面被Fluent、Abaqus碾压)。学习并掌握comsol中PDE方程的建模,设置各类边界条件和初始值,对于我们把握Comsol多物理场耦合有限元的数学思想是非常有帮助的。
问题2:变量的时间积分
问题描述:以案例库Laser Heating wafer为例,当一个固定加热光源打在一个旋转的硅片上,即等效为一个固定的硅片被一个旋转的光源所加热ht.q0。以其中某点为例,如何求出热通量的时间积分并画出随时间的曲线呢?
在后处理里画出Qtot随时间的曲线是不方便的,其实最简单的办法是新建并耦合一个常微分方程ODE,将热通量q0耦合进来进而求出其时间积分u:
若我们只想考察某点的热通量总和,我们只需要建立一个分布式的(distributed)点的常微分方程即可,其方程形式如上图所示,设源项Source term是热通量ht.q0,损耗系Damping coefficient数为1,质量系数为0,则ODE的变量u即为热通量的时间积分。所以我们便可以画出该点的温度T和热通量总和u(即Qtot)随时间的变化:
该点的温度随时间变化呈现一个个脉冲的形式,即该点在旋转过程中一次次经过热源并被加热。而总热通量随时间呈现出阶跃的变化,即是热通量的一次次累积。这样一来,物理意义十分清晰。
最后总结一下,有些朋友找到模数哥,说想在comsol里面建PDE、ODE的耦合方程,一下子就晕了,不知道各个系数怎么设置。我觉得不要太从数学的眼光来看待这些方程,最好是从物理的角度来看待他们,每一个系数都是有明确的物理意义的,这样理解起来也是最方便的。当然如果想尽快解决你手上的问题,最快捷的方法是找模数哥付费咨询了。
comsol积分函数_COMSOL教程- 巧用PDE、ODE耦合方程实现变量的时间积分或者空间微分...相关推荐
- 叉积 微分 恒等式_COMSOL教程- 巧用PDE、ODE耦合方程实现变量的时间积分或者空间微分...
有朋友反映咱们杂货店里推送的高水平SCI论文太过物理,对于一些工科或者其他专业人来说可能有些障碍.模数哥以后也会经常写一写具体的Comsol操作教程,当然也不会像案例库里那样具体"手把手&q ...
- 苹果手机计算机三角函数教程,Excel函数应用教程:数学和三角函数3
Excel函数应用教程:数学和三角函数3 分类:计算机等级| 更新时间:2011-04-30| 来源:Thea 21.INT 用途:将任意实数向下取整为最接近的整数. 语法:INT(number) 参 ...
- 三角函数计算机应用举例,Excel函数应用教程:数学和三角函数5
Excel函数应用教程:数学和三角函数5 分类:计算机等级| 更新时间:2011-04-30| 来源:Thea 41.ROUND 用途:按指定位数四舍五入某个数字. 语法:ROUND(number,n ...
- comsol积分函数_如何在 COMSOL 软件中合并解
在工程分析中,经常需要比较在不同情况下获得的解.可能包括比较不同载荷或参数配置的影响,以及在域的每个点上对结构进行包络以找到最坏或最佳的情况.对于上述每一种情况以及其他类似情况,我们都需要访问多个数据 ...
- comsol积分函数_怎样在COMSOL中实现时间和空间积分
展开全部 COMSOL Multiphysics是一款大型的高级数值仿真软件.广泛应用于各个领域的科学62616964757a686964616fe58685e5aeb931333363386162研 ...
- 菜鸟教程python正则表达式_Python正则表达式常用函数菜鸟教程
这篇文章主要为大家详细介绍了Python正则表达式常用函数菜鸟教程,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! Py ...
- MATLAB不定积分的运算,matlab中怎么把积分函数 int 得到的不定积分式代入 solve 函数中进行计算?...
答:syms r x fun=int(r*exp(-2*(r/2)^2),r,0,x); x=solve(fun-0.5) x = 2^(1/2)*log(2)^(1/2) -2^(1/2)*log( ...
- python函数自定义教程_Python中自定义函数的教程
在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. 我们以自定义一个求绝对值的my_abs函数 ...
- python函数模块化教程_【软件测试教程】Python模块化以及内置模块的使用
一:什么是模块 模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py.模块可以被别的程序引入,以使用该模块中的函数等功能. 二:模块类型 1:自定义模块 由编程人员自己写的模块.自定义模块时要 ...
- python小老鼠编程_成都python函数学习教程,Python编写课程
1.urllib2/urllib实现urllib2和urllib是Python中的两个内置模块,要实现HTTP功能,实现方式是以urllib2为主,urllib为辅.1.1首先实现一个完整的请求与响应 ...
最新文章
- 《JAVA与模式》之简单工厂模式
- 调研字节码插桩技术,用于系统监控设计和实现
- 中国一线城市住宅地价同比增幅连续8个季度收窄
- Android - HttpURLConnection 抛出异常
- Visual Studio 2017最新版正式发布!适用于任何开发人员、平台及APP丨附下载
- fiddler和xampp安装成功后,网站打不开的原因
- 智能客户端(SmartClient)
- jquery选择器连续选择_JQuery中的选择器
- 列出所有子集----------2013年1月3日
- 截取台风后的图片_Python数据分析案例 | 台风最喜欢在我国哪个省市登陆
- PyTorch 深度学习:30分钟快速入门
- 再谈 Formsville
- 反编译那些事儿(四)—序列化问题
- Linux cache清理
- 视觉SLAM十四讲第一讲
- 51nod 1964 陵陵曾玩的数论题
- ChinaITLab-Linux工程师培训课程笔记2
- asp.net扫描仪编程及ajax图片数据上传
- 机房动力环境监测系统
- 基于boost库的搜索引擎
热门文章
- 程序员春节回家相亲指南
- 使用短生命周期容器(Ephemeral Containers)构建微服务化的工作流
- MyBatis映射表问题
- Android Studio建立百度地图步骤及导航无语音解决方法
- UVA 1252	 十五 Twenty Questions
- Centos 5.8 搭建ntp服务器
- 设备参数—支持网络外部的通信
- (Maven配置)Failed to read artifact descriptor for xxx:jar解决方法
- 萌新如何写出一篇优质观点类新媒体文章?
- [Struts]使用tiles管理界面遇到困难