- 积分
- 13
- 注册时间
- 2009-3-4
- 仿真币
-
- 最后登录
- 1970-1-1
|
本帖最后由 kyolee 于 2010-8-26 16:34 编辑
试用COMSOL V4.0a差不多有一个月时间了,其中感触最深的是COMSOL 和Matalb的链接及二次开发问题。由于V4的变化很大,这期间出现了很多问题,经过努力,基本都已解决。现在基本上是习惯了V4.0a的架构了。故写下一点使用心得,希望对大家有所帮助。
首先,COMSOL V4.0a的改进还是很大的,例如在后处理、参数化扫描等做有很大的改进!所以,希望大家试用!
由于COMSOL V4 .0a 和Matalb链接发生了很大的变化,而且COMSOL的M文件函数库也发生很大的变化,这次就重点讲解下这两个问题。
第一个问题:如何连接?
现在的COMSOL desktop和Matlab 几乎没有关系了,和Matalb有关系的只有COMSOL server。所有的M文件的语句都是在Server上运行。
这样一来,进行二次开发的途径有二种。
1. 在desktop里面建模,保存为m文件。之后, 启动COMSOL with Matlab, 打开m文件,然后你就可以根据你的需要修改代码、参数扫描之类的了。这一切都和desktop没有关系了。
2. desktop和COMSOL with Matlab 都保持打开。在desktop中建模,使用export model to server, 将模型导入server中;然后在Matalb中调用model(就是以前的fem结构体),语句如下:model = modelUtil.model('model1') (这里的model1 是你export时候,叫你输入的模型名),然后你也可以进行后操作了。
对两种方法进行一下比较:
使用第一种方法,m文件很多行(包含了建模,网格剖分等等一切过程),而使用第二个方式的话,在你导入model1的时候这些过程都已包含在内,直接可以进行编写二次开发的代码了,这样一来, m文件清楚并简洁!
而且使用第二种方式,当想改你的model的时候,可以直接在desktop中修改,然后继续export,他会覆盖掉前一个导出的model(导出名相同的情况下)。
第二个问题: 函数变化情况?
试用过V4的应该知道,V4的M文件变化最大的就是函数的变化,以前很多函数,现在被分成了几类,建模类,物理场类,网格类,后处理类等。
在每一类中,又包含有很多函数,其中大部分函数是帮助文档中没有的,可以通过m文件中的自动补全命令显示,但是不知道是干什么用的。 这也是学习m文件的最大难点了。我觉得以后帮助文档可能会增添这一类的说明的。 不用不影响使用,最常用基本的几类函数,在帮助文档中是介绍的很详细了。
第三个问题:M文件中如何提取数据?
现在的M函数是一整套的封装式的了。之前想在3.5a版本中的本征值问题可以用以下语句提取出来: e = fem.sol.lambda(: ) ,但是在4.0a中时,发现找不到这一类的变量。但是可以通过以下语句来实现:
1. 使用
ereal = model.sol(solname).getPVals %返回实数部分
eimg = model.sol(solname).getPValsImag %返回虚数部分
(这两个函数就是上面所述的帮助文档没有的,在m文件中用tab键,命令补全显示出来的。)
2. 使用 mphglobal 这个命令,这是提取全局变量数据的命令;
比如 mphglobal(model, 'lambda'); 这里lambda可以任何表达式,也可以数学运算式子。如: mphglobal(model, '(-i*lambda)./(2*pi)‘);
Best wishes!
Kyo |
评分
-
2
查看全部评分
-
|