如何将COMSOL与MATLAB联合
文章目录
- 如何将COMSOL与MATLAB联合
- 前言
- 一、背景
- 二、使用步骤
- 1. 找到 COMSOL Multiphysics 5.5 with MATLAB
- 2. **双击COMSOL Multiphysics 5.5 with MATLAB**
- 三、在matlab上控制comsol——示例
- 有个捷径就是如果不知道想要实现的具体语句是什么的时候,**可以先在comsol实现一遍,然后在另存为.m文件。这样就可以在matlab上打开你另存的文件,找到你想要找的语句指令。**
- 加快计算速度
- 结语
前言
网上搜索教程,发现大部分教程讲得比较初略,或者信息比较分散。本着自己踩过坑就不愿意让别人再踩一遍的原则,写下这篇博文。
提示:以下是本篇文章正文内容,下面案例可供参考
一、背景
- COMSOL 5.5
- MATLAB 2019a
- Win 10
二、使用步骤
1. 找到 COMSOL Multiphysics 5.5 with MATLAB
一般安装comsol时matlab已经有了,那默认创建快捷方式时桌面就会有,
但是碰巧的是桌面上没有,可以在按下方操作
如果你碰巧装comsol的时候matlab并没有,那么你只需装上matlab之后,在重装上comsol。具体操作如下:
首先确定comsol已关闭,然后
选择添加/移除产品和重新安装,然后一路next,不要选择/取消选择任何内容,直到livelink这个界面,选择matlab的安装路径,以我为例就是D:Matlab.。不要把文件夹路径放得过细,comsol会认定为无效路径。
2. 双击COMSOL Multiphysics 5.5 with MATLAB
输入USERNAME,这个随便输入。然后创建密码,确认一次密码。这个输入的过程中,由于窗体是黑色的,字也是黑色的,所以你会感觉没有输入,其实是输入了。所以你尽管输入就完事了。
如下示例:
输入结束后,出现matlab弹窗,之后就可以愉快的使用matlab调用COMSOL了。不说了去肝了!!!
三、在matlab上控制comsol——示例
有个捷径就是如果不知道想要实现的具体语句是什么的时候,可以先在comsol实现一遍,然后在另存为.m文件。这样就可以在matlab上打开你另存的文件,找到你想要找的语句指令。
除此之外,comsol自带的官方文档对comsol with matlab也有基础介绍,大家耐心看吧!
下面列出我这几天摸索出来的作为例子吧!如果对你有帮助的话,那就太好了!
注意:利用matlab控制comsol的前提是你的comsol建模过程完成了且结果可信!
- 首先将你所在的comsol .mph文件所在的文件夹地址加入matlab搜索路径中
- 然后就是码代码了,下面是一个例子
model = mphopen('test.mph');
% 前期设置
model.param.set('f',string(f)+'[Hz]');
model.param.set('phi', string(theta_i)+'[deg]');
model.param.set('theta_r', string(theta_r)+'[deg]');
model.param.set('a', string(a)+'[m]');
for ii = 1:length(cond)
model.param.set('t1',string(t(1,ii))+'[m]');
model.param.set('t2',string(t(2,ii))+'[m]');
model.param.set('d1',string(d(1,ii))+'[m]');
model.param.set('d2',string(d(2,ii))+'[m]');
model.param.set('dx1',string(dx(1,ii))+'[m]');
model.param.set('dx2',string(dx(2,ii))+'[m]');
model.study('std2').run;
% 结果导出
model.result.export('plot1').set('plotgroup', 'pg3');
model.result.export('plot1').set('plot', 'glob1');
model.result.export('plot1').set('filename',string(ii)+'.txt');
model.result.export('plot1').run;
sprintf('已完成:%d',ii/length(cond))
end
有几个值得注意的地方:
参数设置时要加单位的,且是字符串格式
这个例子中结果导出是在提前在comsol设置好的
在结果导出的例子可以参照 https://www.jianshu.com/p/91de8f5f78f8
加快计算速度
以我为例,我需要获得20000左右的结果文件,所以需要简化comsol模型、加快comsol的计算速度。下面是具体操作:
- 将最大网格设置为工作波长的1/8
- 尽可能的将mph文件的大小降低
- 设置单机多核并行计算模式
结语
欢迎大家来评论区讨论,我的水平有限,大家一起共同进步。另外觉得有帮助的,点个赞呗!