comsol操作技巧

更新时间:2023-11-13 18:25:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

comsol操作技巧

下面是本人在利用comsol解决实际问题时碰到的一些问题,通过上网查询,以及自己想出的方法进行解决,很多是网络是无法直接查询到,希望和大家一起分享,也许其中的某条正是你下载冥思苦想要解决的问题,希望能够帮到你。 上网查找的部分如有侵权,请告之删除,谢谢! (一)利用comsol的计算源程序,来建立新的循环计算

如果需要利用其它计算后的数值代入到comsol进行后计算,这就不可避免的要利用comsol的源程序进行后学的连续计算,这里主要需解决在次计算利用上次计算初始值的问题,下面两段就是有无利用上次计算结果作为初始值的程序: %正常的求解 % Solve problem

fem.sol=femtime(fem, ...

'solcomp',{'T'}, ... 'outcomp',{'T'}, ... 'blocksize','auto', ... 'tlist',[colon(0,0.1,1)], ... 'estrat',1, ... 'tout','tlist', ... 'linsolver','gmres', ... 'itrestart',100, ...

'prefuntype','right', ... 'prefun','gmg', ...

'prepar',{'presmooth','ssor','presmoothpar',{'iter',3,'relax',0.8},'postsmooth','ssor','postsmoothpar',{'iter',3,'relax',0.8},'csolver','pardiso'}, ... 'mcase',[0 1]);

%将上次求解结果作为下次计算的初始值的求解 % Mapping current solution to extended mesh init

=

asseminit(fem,'init',fem0.sol,'xmesh',fem0.xmesh,'blocksize','auto');%(此处是关键)

% Solve problem

fem.sol=femtime(fem, ...

'init',init, ... %(此处是关键) 'solcomp',{'T'}, ... 'outcomp',{'T'}, ... 'blocksize','auto', ... 'tlist',[colon(0,0.1,1)], ... 'estrat',1, ... 'tout','tlist', ...

'linsolver','gmres', ... 'itrestart',100, ... 'prefuntype','right', ... 'prefun','gmg', ...

'prepar',{'presmooth','ssor','presmoothpar',{'iter',3,'relax',0.8},'postsmooth','ssor','postsmoothpar',{'iter',3,'relax',0.8},'csolver','pardiso'}, ... 'mcase',[0 1]);

(二)对常数进行赋值

下面一段程序是comsol中常数的赋值语句: % Constants

fem.const = {'U0','3.9', ... 'I0','35', ... 'It1','35', ... 'It2','35', ... 'It3','35', ... 'It4','35', ... 'Vt1','4', ... 'Vt2','4', ... 'Vt3','4', ... 'Vt4','4', ...

'OpenVt1','4.1', ... 'OpenVt2','4.1', ... 'OpenVt3','4.1', ... 'OpenVt4','4.1'};

我们可以通过以下语句对其中的35,4,4.1进行修改

It1=700;It2=700;It3=700;It4=700; fem.const(1,6)={It1}; fem.const(1,8)={It2}; fem.const(1,10)={It3}; fem.const(1,12)={It4};

这样就可以实现常量变成变量,进行计算了

(三)启动COMSOL with MATLAB 2007b时,MATLAB和COMSOL Multiphysics用户界面都没有出现

该问题多出现在Windows上使用COMSOL with MATLAB 2007b,MATLAB 2007a及更早的版本没有这种问题。

该问题可能与MATLAB 2007b引入的新内存分配策略有关,解决办法是让MATLAB使用老的策略,将Windows环境变量MATLAB_RESERVE_LO设置为0。 优选解决方案

要解决这个问题,MathWorks推荐按下面的步骤设置环境变量:

在Windows中点击开始>控制面板>系统>高级>环境变量。 在系统变量框架中点击新增按钮。

在变量名称中键入MATLAB_RESERVE_LO,在变量值中键入0。 点击确定,关闭对话框。 第二种解决方案

在少数极端情况下,首选方案可能解决不了问题,则可按下面的步骤进行尝试:

试着启动一次COMSOL with MATLAB,可能会失败,但将向COMSOL 3.4安装目录中写入一个文件java.opts。

打开java.opts,删除行-Xmx256m,并保存文件。

打开COMSOL安装目录的bin目录中的comsol.opts,改变行: JAVAOPTS=on 到

JAVAOPTS=off

这将确保java.opts不会在每次启动COMSOL with MATLAB被自动覆盖,从而可以永远使用手动修改过的文件。

当在COMSOL Multiphysics的文件菜单中使用“连接到MATLAB”时,会在根目录中查找java.opts,因此需要将编辑过的java.opts文件拷贝到文件主目录目录中,例如 C:\\Documents and Settings\\

(四)comsol的数据txt文件不能用中文,但可以用小数点

本文来源:https://www.bwwdw.com/article/v6ev.html

Top