-
高反应速率(高Ri),或更常见的大源项,会产生收敛性问题,如何解决 [发布时间: 2008-12-31 11:00]
问题描述
高反应速率(高Ri),或更常见的大源项,会产生收敛性问题,经常会看到错误提示信息:"No convergence, even when using the minimum damping factor",或"NaN repeatedly found in solution"。那么如何解决这种问题呢?
• 尝试使用递减的源项,然后逐渐增加,在前面的解基础上求解,直到得到自己想要的结果。下面的案例中使用了参数化求解器来逐渐增加源项。
- 将反应速率(源项Ri)乘上一个变量,例如“k”。
- 在求解器参数对话框中,选择参数化求解器,并将变量名称指定为第一步中乘数因子,k。
- 在参数变量列表中指定递增的值,从很小的值开始,直到递增到1,例如,"1e-3 1e-2 1e-1 1",点击确定。
- 点击求解。
现在COMSOL Multiphysics开始从第一个乘子开始求解,如果求解成功,COMSOL Multiphysics将以此结果为初始值来求解下一个参数值。这个过程持续下去,直到最后一个参数值。因为这里指定最后一个值为1,所以最后的结果就对应于您所需要的结果。
• 使用瞬态求解器。将稳态问题变成瞬态,通常可以得到更平滑的收敛。
- 在求解器参数对话框中选择瞬态求解器,指定时间步长,例如"0 1e3"。
- 点击确定,点击求解。
确保求解的时间足够长,这样结果不再随着时间而变化,达到稳态的结果。这样,COMSOL Multiphysics求解出稳态结果!
• 如果上面这些方法都没法解决问题,请尝试在源项很大的区域使用精细的网格,并结合上述方法。
-
COMSOL Multiphysics中自由度(DOF)是什么意思 [发布时间: 2008-12-18 09:17]
求解时间和内存需求与模型中自由度的数量密切相关。模型中的自由度数量可以从单元数量来估算。
对于大多数应用模式,每个独立变量都体现在所有的网格结点上。这意味着自由度数等于节点数乘以独立变量个数。节点数与单元数的关系取决于单元的阶数,2D和3D是不同的。这种关系仅仅是近似的,因为它依赖于几何边界上的单元比例。对于窄条形的几何,有很大比例的单元是位于边界上的,每个单元的节点数就会稍多。
下面是2D和3D拉格朗日单元的节点和单元数量的近似关系。四边形网格有大约两倍于三角形网格的节点。六面体网格有大约6倍于四面体网格的节点。
2D
- 线性三角形单元: (#nodes) = 0.5 * (#elements)
- 线性四边形单元: (#nodes) = 1 * (#elements)
- 二阶三角形单元: (#nodes) = 2 * (#elements)
- 二阶四边形单元: (#nodes) = 4 * (#elements)
- 三阶三角形单元: (#nodes) = 4.5 * (#elements)
- 三阶四边形单元: (#nodes) = 9 * (#elements)
3D
- 线性四面体单元: (#nodes) = 0.2 * (#elements)
- 线性砖形单元: (#nodes) = 1.2 * (#elements)
- 二阶四面体单元: (#nodes) = 1.4 * (#elements)
- 二阶砖形单元: (#nodes) = 8.5 * (#elements)
- 三阶四面体单元: (#nodes) = 4.6 * (#elements)
- 三阶砖形单元: (#nodes) = 28 * (#elements)
总的自由度的数量由下式给出:
(#degrees of freedom) = (#nodes) * (#dependent variables)
自由度数=节点数量*独立变量个数
可以在网格统计对话框中看到总的单元数和自由度数。需要注意的是自由度数并不是唯一的决定内存需求和求解时间的因素。更多关于怎样避免内存溢出的信息,请参考知识库“处理内存敏感的模型”。
-
有时候模拟的几何对象是一个狭长或者扁平的几何体,由于COMSOL Multiphysics缺省生成的自由网格是尽可能均匀的三角形/四面体,这意味着在狭长(扁平)区域会生成大量的网格,同时,长宽比差异太大会引起剖分网格时失败。 [发布时间: 2008-12-18 09:11]
扫掠网格
减少网格单元的一个方法是在某个边界面上创建网格,然后从源边界到目的边界扫掠生成网格。扫掠的一个优点是可以控制单元层的数量和分布;另一个优点是网格单元的数量会降低很多。如果三维的求解域包含可以作为源边界和目的边界的两个边界,就可以从一个边界到另一个边界自由扫掠或者生成映射网格。求解域可以是任意形状。
例子
这个算例是一个薄片的几何体,如下图左图所示。如果选择自由生成网格,要么会遇到内存溢出,要么会生成大量的网格。要解决这个问题,请遵循如下的步骤:
- 从网格下拉菜单打开映射网格参数对话框。
- 选择源边界(适宜的边界是窄的边界),在预定义的网格尺寸下拉列表中,或者在边标签中手动输入单元数量指定网格数量。
- 点击网格选择按钮,就会看到如下面右图所示的网格。

注意:有时候为了能够在边界生成网格,可能需要在几何中增加辅助线。
- 打开网格菜单下的扫掠网格参数对话框。
- 选择感兴趣的求解域,选中单元层手动指定选择框,在单元层数编辑框中输入你想要的层数。
- 点击网格选择按钮,结果如下图所示。

拉伸网格
如果几何模型是由二维拉伸成而成三维,可以在二维模型中生成网格(自由或者映射),然后拉伸成三维网格。拉伸网格同扫掠网格有相同的优点。需要注意的是,不需要返回二维几何重新生成网格,可以用扫掠网格参数对话框来重新生成网格。
比例缩放网格
另外一个减少网格单元数的方法是,在剖分网格之前按比例缩放窄边方向,然后将网格缩放回来,以便它能够与原始模型匹配。根据经验,可以放大网格3-5倍而不会丢失太多精确性。有时候5-10倍的比例放大也是可以接受的,这一处理过程在图形操作界面完成。在自由网格参数对话框的高级选项,可以输入想要缩放网格的比例。这个操作可以在二维和三维几何体执行。
进一步的阅读和练习请参考:COMSOL Multiphysics用户手册网格剖分章节。
-
在32位Debian Linux 3.1上启动COMSOL 3.4 with MATLAB 2007a或MATLAB 2007b时,出现错误 [发布时间: 2008-12-08 15:54]
问题描述
在32位Debian Linux 3.1上启动COMSOL 3.4 with MATLAB 2007a或MATLAB 2007b时,出现如下错误:
Exception:
java.lang.UnsatisfiedLinkError: /usr/local/comsol34/lib/glnx86/libfldynload.so: libstdc++.so.6: cannot handle TLS data
(rethrown as com.femlab.util.FlFatalException)
Messages:
Fatal error.
- Type: UnsatisfiedLinkError解答
有两种解决方法:
- 升级到Debian Linux 4.0或更高版本(首选)。
- 分别启动comsol matlab server 和 comsol client,在Linux命令提示窗中运行命令:
comsol matlab server
启动MATLAB及设定路径来运行COMSOL Multiphysics,并在MATLAB进程中启动COMSOL服务器,在另一个Linux命令提示窗运行:
comsol client
启动MATLAB之外的COMSOL Multiphysics客户端界面,在设定页,键入计算机的主机名作为服务器名,以及在MATLAB命令窗中出现的端口号作为服务器端口。
-
在SuSE Linux 10.3或Fedora Core 8上启动COMSOL时出现错误 [发布时间: 2008-12-08 15:52]
问题详细描述
在SuSE Linux 10.3或Fedora Core 8上启动COMSOL时出现如下错误提示:
java: xcb_xlib.c:52: xcb_xlib_unlock: Assertion `c->xlib.lock' failed. /usr/local/comsol34/bin/comsol: line 1655: 4457 Aborted ${JAVA} ${JVMARGS} ${CLTMPARG} -classpath ${FLCP} ${SHOWVERSION} ${MAINCLS} ${APPLARGS}
解答
首先,确保您的操作系统已经通过在线升级的方式升级到了最新版本,如果这样还是报错,请按下面的步骤操作:
在文本编辑器中打开comsol34/bin/comsol,在文件的最上面添加下面两行:
LIBXCB_ALLOW_SLOPPY_LOCK=1
export LIBXCB_ALLOW_SLOPPY_LOCK -
Comsol Multiphysics给我的错误信息意味着什么? [发布时间: 2008-12-08 15:47]
Comsol Multiphysics帮助文件包含了一个章节,概述并简短的解释了最常见的错误和求解信息。所有的错误信息依据下面的表格被编号和分类。
编号 类别 1000-1999 导入模型 2000-2999 几何模型 3000-3999 CAD 导入 4000-4999 网格生成 5000-5999 点、边、边界和求解域说明 6000-6999 网格生成 7000-7999 求解器 8000-8999 后处理 9000-9999 通用的
可以通过Comsol Multiphysics的图形操作界面打开帮助文档(HTML/PDF)。从浏览器的帮助菜单中选择帮助文档的格式HTML或者PDF。选择Comsol Multiphysics=>command reference=> Diagnostics(倒数第二章)可以找到错误信息。在这里你可以发现最常见的错误列表及求解信息。在CSOMSOL知识库中,您可以找到更多关于错误提示的信息,以及怎样避免它们,例如:
几何分解内部错误
奇异矩阵
求解失败;甚至用最小阻尼系数也不收敛
内存溢出
知识基础也包含了license管理错误。可以找到最常见的license问题及其解决方法。
License错误-15不能够链接license服务器
有因特网防火墙的license管理器怎样设置
-
为什么我会得到这样的错误信息“几何分解内部错误”? [发布时间: 2008-12-08 15:46]
这个错误提示通常意味着Comsol Multiphysics在剖分网格时分解几何关系失败。如果您的几何模型由几部分组成,当退出绘图模式时,这些对象就会自动组合。各部分之间的组合非常复杂的时候,就会发生错误。
当几何模型缺乏精度,或者导入低精度的CAD模型,又或者画几何模型时精确匹配各个部分存在困难时,就会得到代表这一类问题的典型的错误提示。另外,在复杂的几何模型中,存在长宽比很大的表面,相邻的边的角度很尖锐,或很小的实体等,也会出现这种错误提示。
Comsol装配特性能够防止复杂几何模型合并成单一的几何体。用各个组成部分分别作为一个独立部分,以代替一个几何模型的处理办法可以避免由此产生的错误。您需要用“一致对”来建立各个部分的物理连接。在COMSOL Multiphysics电磁模块的模型库中有一个算例(Thin Film Resistance model)用到了这一功能。
现在让我们来看看有没有其他方法解决这个问题?
- 如果你的软件版本不是最新版本,请更新为最新版本。有时候新版本中改进的功能会使这些问题不再成为问题。最新版本的下载地址:www.comsol.com/support/updates/
- 改变几何模型。简化或者避免小的结构,尽量消除弯曲、窄的交叉,删除不必要的部分。
- 从一个简化的几何模型开始,确定模型可以求解并能给出合理的结果,然后再增加模型的复杂程度。当逐步将几何模型复杂化的同时要确信增加的部分能够给模型带来变化。
- 在绘图模式要处理多个对象时,用创建合成对象对话框(Create Composite Objects)来生成对象之间的组合关系是个不错的方法。理想状态下,以配对的形式完成。在这个对话框中用户可以设定补救容差使得运算法则可以智能的考虑缺陷并修补他们。当得到错误提示时,尝试设定不同的容差来调试模型。
如果这些建议对您没有帮助,请不要犹豫,发送您的模型到我们COMSOL技术支持信箱:www.comsol.com/support/contact/ 或者support@comsol.com。我们将对问题进行测试并寻求解决办法。换句话说,通过发送这种问题,您将对COMSOL软件的发展做出贡献。
-
启动程序时出现错误信息"License Error" [发布时间: 2008-12-08 15:43]
问题详细描述
我有一台PC/Windows或Macintosh计算机,有COMSOL Multiphysics的NSL/CPU授权,我的COMSOL授权文件被锁定到一张网卡上。程序有时候运行正常,但有时候当我启动程序时出现错误信息“License Error”,当我点击错误信息对话框中的”Details>>”按钮时,信息如下:
Exception:
com.femlab.jni.FlNativeException: License error
Messages:
License error
Stack trace:
at license.cpp, row 92, (Invalid host.
The hostid of this system does not match the hostid
specified in the license file.
Feature: COMSOLGUI
Hostid: 00087493d11c
License path: C:\COMSOL34\license\license.dat
FLEXnet Licensing error:-9,57
For further information, refer to the FLEXnet
Licensing End User Guide, available at "www.macrovision.com".)
该问题常发生在装有电源管理软件的笔记本上。例如,如果使用无线网卡,本地连接可能被取消(只要拔掉网线就常常发生),当网络连接被取消时,相应的FLEXnet HostID(网卡地址)就丢失了,结果就是COMSOL无法找到所需的正确的授权信息。解答
请按如下步骤操作:
- 打开COMSOL34\license\license.dat,找到HOSTID=关键词后面的12位数字,如下是一个样例:
FEATURE SERIAL LMCOMSOL 3.4 permanent uncounted VENDOR_STRING=C,10000 \
HOSTID=ANY PLATFORMS=i86_n SN=1015904 SIGN=F918F014D32E
FEATURE COMSOL LMCOMSOL 3.4 permanent uncounted HOSTID=00087493d11c \
PLATFORMS=i86_n SIGN=72164A7264CA
FEATURE COMSOLGUI LMCOMSOL 3.4 permanent uncounted \
HOSTID=00087493d11c PLATFORMS=i86_n SIGN=AAD4E1708AC0666
该文件被锁定到HostID 00087493d11c。 - 该12位数字应该对应于您的一个网卡。
- 检查该网卡的电源管理设定,取消所有可能会关闭网卡的选项。
- 打开COMSOL34\license\license.dat,找到HOSTID=关键词后面的12位数字,如下是一个样例:
-
FLEXnet Licensing error:-103,577 错误信息 [发布时间: 2008-12-08 15:41]
问题详细描述
遇到一个错误信息,当点击 "Details>>" 按钮时出现如下日志信息:
Exception:
com.femlab.jni.FlNativeException: License error
Messages:
License errorStack trace:
at license.cpp, row 106, (Terminal Server remote client not allowed.
Feature: COMSOLGUI
License path: C:\COMSOL34\license\license.dat
FLEXnet Licensing error:-103,577
For further information, refer to the FLEXnet Licensing End User Guide,
available at "www.macrovision.com".)解决办法
您可能试图通过远程桌面访问Windows XP或Vista,或者通过终端服务访问Windows 2003服务器,但是单机版(NSL)不允许这样通过网络访问COMSOL。
解决办法是在安装程序的计算机上通过终端方式运行COMSOL。
请联系当地的COMSOL代理,咨询正确的通过网络访问COMSOL的授权方式。
-
错误信息:License error -15 Cannot connect to license server system [发布时间: 2008-12-08 15:37]
问题详细描述:
"Details"窗口显示的信息为:
Exception:
com.femlab.jni.FlNativeException: License error -15 Cannot connect to license server system
Messages:
License error -15 Cannot connect to license server system
Stack trace:
at license.cpp, row 89, (Cannot connect to license server system.
The license server manager (lmgrd) has not been started yet,
the wrong port@host or license file is being used, or the
port or hostname in the license file has been changed.
Feature: COMSOLGUI
Server name: myserver
License path: C:\COMSOL34\license\license.dat
FLEXnet Licensing error:-15,10. System Error: 10061 "WinSock: Connection refused"
For further information, refer to the FLEXnet Licensing End User Guide,
available at "www.macrovision.com".)解答
该错误说明当COMSOL应用程序连接运行在授权服务器上的授权管理器时有问题,这可能是授权管理器故障,或网络问题。TCP/IP必须能同时正常运行在授权服务器和COMSOL Multiphysics客户端上。
请使用下面的检查列表来调试:
- COMSOL授权管理器还没有安装或启动。如果您的license.dat文件的第一行信息类似于:
SERVER mylicserver 000123456789 1718
就需要一个授权管理器,请参考COMSOL安装指南中的“安装授权管理器”章节来了解如何安装和启动COMSOL授权管理器。 - 检查在COMSOL客户端上是否有防火墙阻止该客户端与授权服务器之间的连接。可临时关闭COMSOL客户端上的防火墙,看看能否解决问题。
- 检查在授权服务器上是否存在防火墙阻止COMSOL客户端连接到授权管理器。
- 检查在COMSOL客户端上的license.dat指向正确的授权服务器主机名。首先,在COMSOL安装文件夹下找到license.dat文件:
PC/Windows: C:\COMSOL34\license\license.dat
UNIX/Linux: /usr/local/comsol34/license/license.dat
Mac OS X: /Applications/COMSOL34/license/license.dat
检查第一行的授权服务器主机名是否正确,例如,如果授权服务器主机名为"mylicserver",在license.dat文件的第一行应该象这样:
SERVER mylicserver 000123456789 1718
如果COMSOL客户端没有将"mylicserver"识别为正确的主机名,可以尝试改为完整有效的域名(例如):
SERVER mylicserver.mydomain.org 000123456789 1718
或IP地址(例如):
SERVER 123.456.789.123 000123456789 1718
如果这些主机名都不起作用,可能是客户端的DNS或HOSTS文件有问题。请咨询系统管理员,了解如何使用TCP/IP连接到授权服务器。 - 授权管理器在启动时遇到问题。请检查授权管理器的日志文件,了解错误信息,该日志文件一般放在:
PC/Windows: C:\COMSOL34\license\comsol34.log
UNIX/Linux/Mac OS X: /var/tmp/comsol34.log
注意:授权管理器启动时自动创建日志文件。
- COMSOL授权管理器还没有安装或启动。如果您的license.dat文件的第一行信息类似于:
-
错误信息“奇异矩阵”意思是什么? [发布时间: 2008-12-08 15:36]
当求解线性问题时刚度矩阵是奇异矩阵,线性求解器无法求逆,就会出现这个提示。例如有以下操作时会出现这个问题:
- 待求解问题(包含边界条件的方程式系统)条件太多或不够。检查方程和边界条件,如果定义了不适定的初始条件,则常常会发生矩阵奇异错误。查看初始条件设定,并设定为有依据的猜测值。另外一种情况就是在不允许求解周期性边界的问题,采用了这样的边界条件。还有一种情况是Navier-Stokes方程的边界上未约定压力,也许需要定义一些点约束。
- 依据求解变量的导数指定了一个因变量,而非线性系统的缺省初始猜测值是一个常数(使得求解导数的初始猜测值的因变量为零),这会引起方程变得奇异。解决方法是,指定一个非零导数的初值,比如1e-6*sqrt(x^2+y^2+z^2)。当定义非线性材料时经常会发生这个问题,例如非线性磁材料(磁饱和度效应)。要获取更多信息,请参考“如何对非线性磁性材料建模”。
-
COMSOL Multiphysics能处理左手手性材料吗? [发布时间: 2008-12-08 15:31]
简介
左手材料(或介质)在光学和电磁领域是一种重要的材料,在蜂窝通讯和无线技术,诸如光子学/光学等领域,有着极其重要的商业意义,下面是对该领域描述的链接:
http://physics.ucsd.edu/lhmedia/whatis.html
COMSOL Multiphysics与左手材料
引入负介电常数和负磁导率,COMSOL Multiphysics可以轻而易举处理由左手材料问题。下图是使用COMSOL Multiphysics对左手材料建模的案例,模型中间区域的材料具有负介电常数和负磁导率,μr = εr = -1,在左边界上对波导激励。如预期的那样,电磁波能量(箭头方向)自左向右流动,但是在中间区域相位发生了变化。

需要注意的是,为了避免数值解的不稳定,该案例并未如普通材料(右手材料)那样在左手材料的属性中设置精确值(仅设置了负值)。如果在公共边界上划分优质网格,那么将左手材料的材料属性设置成与右手材料的材料熟悉的负数值相近(即两者的绝对值相近),也是可行的。
利用这些属性,COMSOL Multiphysics还可以对周期结构进行建模。
-
COMSOL Multiphysics可以导入图片吗? [发布时间: 2008-12-08 15:30]
是的,在MATLAB可以用一个函数(imread)从文件读取图像,BMP, JPEG, PNG, 和 TIFF格式的图片可以被转换成2维或者3维的几何体。在工作空间中,imread函数将图片转化成矩阵格式。其它一些相关函数,如imwrite用来保存图像,imagesc用来显示矩阵格式的图像。要获得更多函数的信息,请参看COMSOL Multiphysics Scripting Guide。您也可以在COMSOL Multiphysics Command Reference中找到这些函数及其说明。
由图片创建2维和3维几何体
用flim2curve函数来实现由图片到2维几何曲线的转变。
一个3维的几何实体可以由一系列图片通过数据插值来创建。简言之,需要用户自己定义一个函数myfun(x,y),使用imread读取图片,提取像素并插值成COMSOL Multiphysics网格。创建一个简单的几何体(立方体或者椭球体),通过myfun函数导入图片数据。可以参考“数据导入”来获得更多关于数据插值的信息。这是到目前为止处理非均一材料最有效的方法,在COMSOL Multiphysics模型库中“岩石裂隙流模型”就采用了这种方法。
大图片
如果您的图片较大,就会花比较长的时间来完成导入。为了节省计算时间在导入之前用户常需对图片做些处理,降低图片的像素。最简单的方法是分别在x、y方向提取每个次像素点。更高级的方法是在减少象素点前进行柔化处理。
导入有噪点的图片
解决办法是模糊处理图片数据。很多时候将导入的几何体是被用来求解扩散方程(泊松方程类型),这种情况下,图片中的高频被模糊掉是无关紧要的。因为扩散方程本身是一个低通滤波方程,方程将“不会看到”几何体微小的细节。也就是说,对于具有凹凸不平边界的几何体和光滑边界的几何体,你会得到一个相似的结果。
导入网格
Simpleware(参看http://www.simpleware.com/)能够转换图片为网格格式,进而导入到Comsol Multiphysics中。这一格式(.mphtxt)是个文本文件,包含结点坐标和单元信息。更多关于格式的信息可以参考Comsol Multiphysics User’s Guide中网格章节的内容。因为图片直接转化成网格,而非如上面提到的几何对象,所以在Simpleware中进行处理是一个不错的选择。
-
COMSOL Multiphysics能计算磁力吗? [发布时间: 2008-12-08 15:28]
是的,可以计算如下三种方法活动电磁力:
- 计算洛伦兹力
- 虚位移方法
- 麦克斯韦应力张量
载流导体所受的力,用电流密度向量和磁感应通量密度向量的向量积(J x B)计算得到。计算结果是力的密度,用COMSOL Multiphysics的积分功能对其进行积分可以得到求解域的总受力。这就是所谓洛伦兹力。
当考虑磁偶极子贡献时,不能使用洛伦兹力方法,而应该使用虚位移方法,它能用于计算一组被空气所环绕的物体所受的力。AC/DC模块中的cemforce 和cemtorque 程序使用了这种方法。该方法中,力由系统总能量差除以求解域的微小位移差得到。注意cemforce和 cemtorque只适用于线性拉格朗日单元,不能用于所有阶数的向量单元。
麦克斯韦应力张量是用等效表面压力取代物体受力的方法。也就是说,表面力像体积力分布那样产生了同样的合力和力矩。
- 洛伦兹力方法请参考准静态电磁模块的模型库案例“线性电动马达”。
- “cemforce”方法请参考准静态电磁模块的模型库案例“线性动圈马达”
- 麦克斯韦应力张量方法请参考准静态电磁模块的模型库案例“永久磁铁”和“平行载流电线的电磁力”。
力矩
对于力矩计算,可使用求解域设定对话框的“力(force)”标签。必须指定一个旋转的中心点,从而得到围绕此点的力矩在三个轴上的分量。因此也能计算围绕任意轴的力矩。
- 麦克斯韦应力张量方法计算力矩请参考准静态电磁模块的模型库案例“机械动力对称发电机”。
-
当插入COMSOL 3.4安装DVD时,Windows系统重启或显示蓝屏挂起。 [发布时间: 2008-12-03 10:11]
我们从一些没有按正确方法对Windows操作系统进行升级的用户那里收到这种错误信息,解决办法就是升级Windows系统,有两种办法可以升级Windows系统:
- 右键点击“我的电脑”,从菜单中选择“属性”,点击“自动升级”标签,点击正确的单选键,然后点击确定。等待系统自动进行升级。我们推荐下面的一种方法:
- 到www.update.microsoft.com(需要Microsoft Internet Explorer 5或更高版本)手动进行升级。
如果您的电脑因为安全的原因而没有连接到因特网,请与系统管理员联系如何升级Windows操作系统。


