当前位置: 中仿科技(CnTech) » 在线服务 » 问题与解答 » COMSOL

RSS订阅 (RSS使用说明)问题与解答

分类列表
  • COMSOL中,为何3.3版本的瞬态模型无法在3.4版本中运行? [发布时间: 2009-07-01 14:51]

    COMSOL 3.3a中运行良好的瞬态模型,但是当我在3.4版本中打开运行时得到错误信息:

    Error:
    Time 0:
    Failed to find consistent initial values.
    Last time step is not converged.

    确认物理量>属性中,所有的应用模式的“分析类型”都设置为“瞬态”,从多物理场菜单中选择各个应用模式,然后将每个模式设置为正确的选项。

    背景介绍

    这个错误信息出现的原因是因为在求解器设定用户界面上有一些改变。早期版本中,在求解器参数对话框中选择“瞬态”就可以进行瞬态求解。然而,从COMSOL 3.4开始,您必须确认每一个应用模式都被设置成为“瞬态”。这个改变的目的是为了让用户控制在多物理场耦合中,哪一个模式是瞬态,哪一个为稳态。

     

  • COMSOL中,两相流的水平集方法与流动体积法(VOF)有何差异? [发布时间: 2009-07-01 14:49]

    水平集方法和流动体积法之间的最主要差异是后者使用非连续函数(一相为0,另一相为1),而水平集方法则采用平滑函数的等值线来描述界面。这两种方法各有优缺点:VOF因为值不连续,所以在计算界面的位置和平均曲率(确定表面张力)时精度较低。其优点在于每种流体的质量完全守恒。另一方面,水平集方法使用平滑函数,则可能得到更好的精度。

    在最早的水平集方法中,使用了一个带符号的距离函数(也就是说,在每个点,水平集函数最接近于界面,由正号或负号来决定该点属于哪种流体,0则给出了界面)。这种水平集方法最大的问题是质量不守恒,会出现很明显的质量损失。不过,COMSOL Multiphysics使用了改良的水平集方法,有较好的守恒性。它本质上是在原始水平集方法和VOF方法之间的折中,具有高精度,以及好的质量守恒。可参考Inkjet Printer Head model,这是一个使用水平集的案例。

    喷墨打印机喷嘴

    至于Lagrangian方法,它采用示踪粒子或移动网格显式跟踪界面。它最主要的缺点是不能处理拓扑结构的改变,或界面的大变形,而且也不容易计算表面张力。不过,该方法可以得到很高的精度。在COMSOL中,可以使用动网格(ALE)和Lagrangian方法跟踪界面,请参考案例sloshing tank

  • COMSOL是否支持RedHat Enterprise 5 [发布时间: 2009-06-24 09:57]

    RedHat Enterprise 5还没有被作为测试环境,因此我们不能保证兼容性。然而,不少客户已经反映,在RedHat Enterprise 5上运行COMSOL 3.4没有问题。

  • 如何更新COMSOL授权管理器 [发布时间: 2009-06-24 09:49]

    更新授权服务器,然后在客户端计算机上升级COMSOL

    请注意COMSOL 3.5授权管理器程序和授权文件(license.dat)向后兼容COMSOL 3.4,这意味着使用COMSOL 3.4的浮动版的用户仍然可以继续使用。

    Linux/Sun/Macintosh上升级COMSOL授权管理器

    1. 在授权服务器上安装COMSOL 3.5授权管理器,请参考COMSOL安装与操作指南中的安装授权管理器章节。
    2. 停止COMSOL 3.4授权管理器:进入路径comsol34/license/$arch,其中$archglnx86 (32Linux), glnxa64 (64Linux), glnxi64 (Itanium Linux), sol2 (32Sun), sol64 (64Sun), macosx (PowerPC Mac), maci32 (32-bit Intel Mac) maci64 (64 Intel Mac)。用lmdown命令停止COMSOL 3.4授权管理器:
      ./lmdown -c ../license.dat
    3. 进入路径comsol35/license/$arch
    4. 用下面的命令启动COMSOL 3.5授权管理器:
      ./lmgrd -c ../license.dat -L /var/tmp/comsol35.log
    5. 更新COMSOL授权管理器的启动脚本,不同平台的缺省脚本见下表:

    SuSE Linux

    /etc/init.d/comsol34lm

    Debian Linux

    /etc/init.d/lm_comsol

    Linux

    /etc/rc.d/rc.local

    Sun

    /etc/init.d/lmgrd

    Macintosh

    /Library/StartupItems/COMSOL_Lmgr/COMSOL_Lmgr

    1. 用文本编辑器打开指定脚本,设置FP变量到COMSOL 3.5的根目录,请注意您需要超级用户(root)权限来进行编辑。

    更新完成,授权服务器不需要重启。

    Windows上升级COMSOL授权管理器

    COMSOL 3.5授权管理器通常是以Windows服务的方式安装,使用LMTOOLS来升级服务。

    1. 在授权服务器上安装COMSOL 3.5授权管理器,请参考COMSOL安装与操作指南中的安装授权管理器章节。
    2. 从启动菜单>程序>COMSOL 3.5>>License Tools>LMTOOLS启动LMTOOLS
    3. Service/License File 标签,选择COMSOL授权管理器。
    4. Start/Stop/Reread页面上点击Stop Server按钮。
    5. Config Services页面,改变lmgrd.exe, license.dat,以及日志文件comsol35.log的路径。点击Save Service按钮。
    6. Start/Stop/Reread页面点击Start Server按钮。
    7. File菜单选择Exit关闭LMTOOLS

    更新完毕,授权服务器不需要重启。

  • 当启动COMSOL with MATLAB 2007b时,MATLAB和COMSOL Multiphysics用户界面都没有出现 [发布时间: 2009-06-17 17:07]

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

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

    优选解决方案

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

    1. Windows中点击开始>控制面板>系统>高级>环境变量。

    2. 在系统变量框架中点击新增按钮。

    3. 在变量名称中键入MATLAB_RESERVE_LO,在变量值中键入0

    4. 点击确定,关闭对话框。

    第二种解决方案

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

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

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

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

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

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

  • 在COMSOL中,"Error 7067, System matrix is zero",怎么产生的? [发布时间: 2009-06-17 17:03]

    该问题可能是由于只在3D对象有表面剖分了网格,例如映射网格。如果对象中没有体网格,系统矩阵将为0

    图:即使网格看起来很好,却可能只有表面网格,如果开始在一个面上创建了映射网格,需要在实体内部扫掠得到体网格。

    下面的操作步骤可以解决该问题:

    1. 进入边界模式,点击删除网格,选择对象的一边(较大的一边),点击网格选定(映射)来生成一个映射网格。

    2. 点击网格剩下(扫掠),可以得到扫过整个内部的体网格。

  • 在COMSOL中,如果想引入增益或损耗材料,应当如何设置? [发布时间: 2009-06-12 10:32]

    COMSOL Multiphysics基本模块使用如下时谐关系,

    u(t,x,y,z) = Re(ejωt)*Uc(x,y,z),

    u(t,x,y,z) = Re(ejωt)*Uc(x,y,z),

    其中Uc是复数解变量,ω是角频率,t是时间,j是虚数单位。为保证应用模式之间的兼容性,该约定同样应用于COMSOL Multiphysics所有模块的所有的时谐应用模式。这是电学和结构力学中的通用标准定义,对于某些诸如光场的物理场,大部分文献在指数上加了一个负号。该约定决定了复介电常数的虚部应使用何种符号来代表存在损耗的材料。如下定义应用于COMSOL的所有模式,无论是准静态电磁还是电磁波:

    Im(ε) < 0 表示存在损耗的材料。

    Im(ε) > 0 表示存在增益的材料。

    对电磁波也可以选择在复折射率中指定损耗。因为折射率定义为相对介电常数的平方,所以应用同样的规则:

    Im(n) < 0 表示存在损耗的材料。

    Im(n) > 0 表示存在增益的材料。

    注意可以通过把介电常数或折射率定义为频率的函数来模拟色散(频率依赖)材料。同样地,也可以通过实数介电常数和非零电导率来模拟损耗。
  • 在COMSOL中,如何才能得到高频下接近真实情况的解? [发布时间: 2009-06-12 10:30]

    未能很好地解析集肤深度是ACRF应用中最常见的错误。幸运的是,在多数无法提供足够精细的网格的情况下,可以使用阻抗边界条件来解决问题。

    集肤深度的定义是导体材料中需要多深才能使电磁场衰减到表面的1/e。在向模型中添加一个高电导率或磁导率对象前,检查至少需要多少网格单元来解析集肤深度是很有效的。对于一个良导体,可由下面的表达式计算集肤深度

    其中ω是角频率,μ是磁导率,σ是电导率。例如,对于50Hz,铜r = 1, σ = 6·107 S/m)的集肤深度大约9mm,铁r = 4000, σ = 1.12·107 S/m)约为0.34mm。因为金属中大部分电流在距表面一个集肤深度范围内,所以需要用一些网格来解析该区域。如果希望COMSOL Multiphysics计算该集肤深度,在所有的时谐电磁应用模式中,它被包含在绘图参数对话框中的一个预定义变量列表中。

    下面的图显示了不同解析度情况下,金属表面附近的局部电阻热。

    如果需要保持很少的网格单元数量,却对该集肤深度范围内得到很好的解析,可以使用边界层网格,可通过网格菜单下的边界层网格参数对话框来进行设置。

    阻抗边界条件

    对于高频、高电导率或高磁导率材料,要解析这个集肤深度并不总是现实的。在这种情况下,可以使用阻抗边界条件,该边界条件在很多AC/DCRF模块的应用模式中可选。要使用它,首先需要解除求解域,即可能需要用别的方法表征的金属。然后,在非激活金属域的边界上选择阻抗边界条件,在边界设定对话框的材料属性标签里键入金属的属性。在阻抗边界条件下,所有的电流运行在金属表面,这样就不必解析集肤深度。当使用阻抗边界条件时,集肤深度是绘图参数对话框中边界标签内的预定义表达式。

    当材料厚度远大于集肤深度时,使用阻抗边界条件是一种很好的近似。对于很多实际情况,一个3-4的因子就足够了,这意味着在可以解析集肤深度和可以使用阻抗边界条件的频率范围常常有略微重迭。

    AC/DC模块有一个案例表明如何用一个精细网格解析集肤深度和当不能这样处理时如何改用阻抗边界条件,该案例在模型库AC/DC Module>General Industrial Applications > eddy currents 3D

    解析波长

    注意,当解析电磁(或其他)波方程时,需要解析波长。其基本规则是,每个波长至少使用10个线性或5个二阶单元。如果这样使得处理3D模型时内存不足,可以使用迭代求解器,如GMRES+几何多重网格预处理器。该预处理器运行在一个较粗的网格(每波长只有2个线性单元),然后按照算法达到足够的解析。相关的信息参见RF模块用户指南中的RF建模的“求解大型3D问题”。
  • COMSOL Multiphysics中如何同时查看结果和网格? [发布时间: 2009-06-08 09:33]

    查看模型的网格最好的办法是在网格模式下,通过菜单网格 > 网格显示参数可以对单元和颜色等的网格显示属性进行设置。通过如下的操作,也可以在后处理中对网格可视化进行设置:

    ·  绘图参数对话框的通用标签中,将单元细化自动前的钩去掉,并填上1

    ·  如果是2D模型,选择表面标签,如果是3D模型则选择求解域标签,然后显示域单元,或在边界标签中选择绘制边界单元。

    ·  选择填充样式: 线框

    ·  选择均匀颜色并点击颜色按钮来选择一种颜色,这样可以使用单一颜色来渲染网格。否则,网格的颜色将根据结果或者在表达式中输入的表达式来控制。

    ·  需要注意的是,如果想将网格和结果显示在同一个2D模型中,需要在绘图参数窗口的通用标签下,选择保留目前的图。首先创建一个结果图,然后再显示另外一个,并确保选中保留目前的图

    ·  如果希望将网格与其它类型的绘图同时显示,在3D模型中,可以在边界上显示网格,同时用填充颜色的形式将结果显示在求解域上。步骤如下:在绘图参数窗口中同时选择求解域边界,在边界标签下按上面的方法显示网格,在求解域标签下显示结果数据。

    ·  下面给出一个例子(模型库位置:COMSOL Multiphysics > Diffusion),使用线框绘制边界单元网格,而用结果数据的颜色填充求解域。

     

    需要注意的是,参数化几何移动网格 (ALE)应用模式中使用后处理模式下的网格绘制功能,同样可以获得意想不到的效果。参考知识库“改进ALE和参数化几何的收敛性”,其中演示了使用线框绘制表面变形网格。

  • COMSOL Multiphysics支持什么版本的MATLAB? [发布时间: 2009-06-08 09:32]

     

    COMSOL 3.4

    请参考系统需求说明来了解全面的MATLAB版本信息:

    http://www.comsol.com/products/requirements

    COMSOL的早期版本

    COMSOL 3.3a兼容MATLAB 6.5, 6.5.1, 7.0, 7.0.1, 7.0.4, 7.1, 2006a, 以及2006b,此外还兼容32WindowsMacintosh以及32Linux平台上的MATLAB 2007a。在32Linux平台上的MATLAB 2007a接口需要软件补丁,可从软件升级页面下载:http://www.comsol.com/support/updates/

    COMSOL 3.3已经测试过MATLAB 6.5, 6.5.1, 7.0, 7.0.1, 7.0.4, 7.1, 2006a, 以及32位的2006b,在Linux上使用COMSOL 3.332MATLAB 2006b,需要在comsol命令中添加-gcc344标志,例如,键入

    comsol -gcc344 matlab


    更早期的版本,如果要从MATLAB环境中启动COMSOL Multiphysics,请参考Linux上运行COMSOL 3.2aCOMSOL 3.2b with MATLAB R2006a的修补程序

    http://www.comsol.com/support/updates/comsol32a-hotfix-ml-linux.php

  • COMSOL中如何在瞬态或特征值问题中使用参数化分析? [发布时间: 2009-06-08 09:31]

    参数化求解器用来求解不同参数值的稳态问题,对于瞬态或特征值问题使用参数化方法,需要使用脚本。最方便的方法是在COMSOL MultiphysicsGUI中创建模型,求解某个参数值,然后保存成M文件。编辑该M文件,添加关于参数的循环,并保存结果,最后在MATLAB中运行该M文件。

  • 如何从2D轴对称的结果得到3D结果图? [发布时间: 2009-05-27 09:56]

     

    COMSOL Multiphysics 3.53.4

    COMSOL Multiphysics User's GuideModeling Guide中都有详细的描述。请查看COMSOL Multiphysics User's GuidePostprocessing 2D Axisymmetric Models in 3D under Postprocessing and Visualization的章节。

    COMSOL Multiphysics 3.3

    绘制3D模型后,使用拉伸耦合变量将2D轴对称的结果映射到3D几何模型上。

    在下面的一个流体流动模型中,对2D几何进行旋转获得3D几何图形,只对2D进行计算,却得到3D的结果。如果你想查看速度场和压力,需要映射三个变量,即定义三个拉伸耦合变量:u(径向速度)、v(垂直速度)和p(压力)。

     

  • 如何在平面TM波模型中将内部边界转换为完美电导体? [发布时间: 2009-05-26 12:27]

     

    平面TM波应用模式内置的完美电导体(PEC)边界条件要求变量Hz在穿过这一边界时不连续。COMSOL Multiphysics使用的标准节点网格单元在求解变量穿过内部边界时施加了连续性,这是因为边界两边的网格单元共享相同的节点。使用装配体能够解耦边界上的节点。

    可以按照如下步骤在内部边界上施加PEC边界条件:

    ·绘图模式中,确认PEC边界组成了两个分离对象间的接触边界。

    ·选择绘图>使用装配

    ·现在,在想要转换为PEC边界条件的地方应该有了两个边界,将这两个边界都选为PEC边界条件。

    ·其它对象间的接触边界也转换成了两个边界,为了使解在穿越这些边界时连续,需要在物理量>一致对>一致边界对中把它们转换为一致对。

    所附算例模型显示了平面TM入射波被一个完美电导体薄板散射的情况,使用散射场公式并求解三个不同的入射角。通过使用参数求解器来改变入射角,在物理量>标量变量中输入一个入射磁场的表达式引入相关的入射角。为了避免在外部边界上的非物理反射,使用圆柱形的完美匹配层(PML)环绕物理区域。使用选项>抑制隐藏PML求解域和连续边界对,从而更清楚地显示结果。

                                                        图片显示了入射角为45度时磁场的z分量

    这里列出的一般操作步骤概要在COMSOL Multiphysics用户指南的“使用装配体”和“指定对的物理设定”章节中有详细描述。模型库的膜电阻模型是一个带有详细文档的类似算例,可在COMSOL Multiphysics > Electromagnetics下找到。

  • 为什么绝缘边界条件能够产生很大的有效通量? [发布时间: 2009-05-26 12:25]

     

    当用COMSOL Multiphysics求解类似于扩散的问题时,有些边界被定义为绝缘/对称条件,这些边界上的一些变量的法向通量积分值,与零之间有很大差距。为什么绝缘边界条件能够产生很大的有效通量?

    解答

    所看到的这些现象只是不能从边界通量得到的这种信息的效果,因为有限元法不允许使用解的梯度来计算边界通量。真实的通量为零(正如你预期的那样),但是,你测量的通量却是通过对邻近单元进行外推得到的。通量是正确的,但是你很难使用后处理工具对其进行查看。

    简而言之,有限元法可以给出边界上的解,但是很难对这些边界的通量进行检测。

    但是,在边界设置浓度的情况下,使用COMSOL Multiphysics的弱约束可以精确计算出通量(菜单Physics>Properties)。

    需要注意的是,未开启弱约束的情况下,对固定浓度边界(静电中固定电势,传热中固定温度值等等)的缺省通量变量计算得到的结果是不可靠的。

    所以有两种计算边界通量的情况:

    1. 你已经对通量g设置为n*grad(c)+qu (这里使用PDE系数形式)
    2. 你已经对浓度c设为定值(例如V或者T

    在第一种情况中,通量g可以如你定义的那样得到精确值,但是在后处理中很难检测。就数值方法来说,这是合理的,如果网格和单元阶数合适,可以得到一个合理的解。

    在第二种情况中,你使用弱约束后可以在后处理步骤中得到精确通量。

    请注意,使用弱约束并不能提高解的精度,它只能让你访问边界上额外的变量,从而更容易对通量进行积分。

    该方法还可以应用于力学中力的计算,更多信息请参考COMSOL Multiphysics Modeling GuideWeak Constraints章节。
  • 如何使用3D欧拉梁坐标系统? [发布时间: 2009-05-19 13:06]

     

    基于很多原因,用于3D结构边建模的3D梁,需要使用局部坐标系统:

    1. 数据内部:在某些场合,需要给数据内部制定坐标系统,例如面积惯性矩
    2. 后处理:如果想查看挠矩或剪力,就需要知道坐标系统方向
    3. 载荷:加载局部载荷之前,需要预先制定坐标系统

    如果梁的截面是矩形或圆形(实体或管道),面积惯性矩与方向无关,那么,梁完全对称,此时就不必在意局部坐标系统,除非是想查看用局部坐标定义的结果,这些结果包括挠矩、剪力、局部位移和转角。

Page: 1 / 7     [1] 2 3 4 5 6 7  下一页