自动处理comsolMultiphysics®中的选择

2014年7月2日

这是博客系列的第3部分,介绍如何使用Livelink™时如何处理选择和实体号为了MATLAB®和COMSOL®应用程序编程接口(API)。在本节中,我将讨论如何执行comsolMultiphysics®仿真软件中选择和实体编号的内部处理,以及如何在设置自己的模型时如何使用这些方法。

自动处理模型中的选择

当您更改模型(包括对几何形状的更改)时,Comsol Multiphysics会跟踪您应用于模型及其相关选择的大多数设置。如果您有一个边界条件应用于一组边界,则该模型会记住这些设置,甚至还会在边界变化时更新边界的实体编号,这是由于几何变化。

当然,在某些情况下无法保留设置。例如,如果删除所有边界某个边界条件适用于,那么边界条件将具有空的选择。因此,除非您手动为其选择添加新的边界,否则它不会为模型做出贡献。

该博客系列的第2部分,我们向您展示了一种使用Livelink™中使用功能的基于坐标的选择的方法为了MATLAB®获取用于设置模型的实体编号。这很容易在命令行上使用,但是在使用Comsol Multiphysics中的选择时,通过用户界面(UI)添加选择,然后将物理设置应用于这些选择,而不是将其应用于几何实体要容易得多。。这样,您正在利用跟踪几何实体的内部框架,并且在设置模型时不需要使用实体号。

有两种方法可以为模型添加选择。第一种方法是选择创建选择每个几何操作可用的复选框。

在comsol Multiphysics中创建选择复选框

这样,您可以轻松地创建包含操作输出实体的选择。将为域,边界,边缘和点创建选择。选择的名称将由几何和对象加上“ _ dom”,“ _bnd”,“ _edg”和“ _pnt”的标签组成。例如,对于带标签的矩形R2边界选择的标签变为geom1_r2_bnd

将选择添加到模型的第二种方法是创建命名选择在模型树中。这些可以添加为节点定义模型树的分支几何序列本身。添加命名选择的位置并不重要,但是几何序列中的选择不仅可以用于物理或网格设置,而且可以作为下游几何操作的输入。通过选择描述性名称,您可以获得几何序列本身的良好概述。

使用comsol多物理选择来跟踪几何变化

让我们看一下几何序列中的命名选择。导航到几何1模型树中的节点和右键单击,然后单击“选择”。这样做后,您会看到不同选择类型的列表:

comsol多物理学中的选择菜单

框选择对应于命令mphselectbox,但是由于此选择更紧密地连接到comsol多物理几何形状,因此具有更多选择。您可以选择包括实体任何事物在盒子里或某物在里面。你也可以组连续切线,这使您可以选择具有连续截面的相邻面或边缘(通过某种公差)。在此示例中,我不会使用这些高级功能。

对于散热器的示例模型,我将添加两个选择:用于散热器热部分的一种选择,另一个选择冷侧。相比之下,我打了三个电话mphselectbox在博客系列的第2部分中。为了获得热的选择,我只选择了复选框创建选择对于定义第一个组件的矩形。由于该矩形用于数组操作中,因此选择会自动扩展以覆盖数组的所有部分。对于冷侧,将盒子选择添加到几何序列的末端,以包括散热器的上部。现在,即使我在散热器上添加更多鳍(更多矩形),盒子选择也会自动包含它们,因为它是几何序列中的最后一个节点。

在comsol Multiphysics中配置的框选择
框选择配置为输出落在指定极限之内的边界,在这种情况下,散热器的冷侧。

设置选择后,必须配置模型中的边界条件,以便它们使用选择。从现在开始,可以更新几何形状,而不必担心Comsol Multiphysics内部使用的选择或实体号。现在,该模型可以从ComsolMultiphysics®UI和MATLAB®软件中保存和使用。当然,可以使用COMSOL API进行选择。要查看如何完成此操作,您可以简单地将模型保存为MATLAB®软件的模型文件,如图所述与M-Files系列合作的第1部分

当您加载包含Livelink™选择的模型时为了MATLAB®,您可以使用包装器功能查看选择mphviewselection。要查看对寒冷一面的选择,您可以执行mphviewselection(模型,'geom1_boxsel1')

MATLAB®中的边界
边界(在红色的)使用命令查看散热器的冷侧的盒子选择输出mphviewselection

模拟

在示例中第2部分,我通过在散热器上添加更多鳍来修改几何形状。而不是使用mphselectbox对于我在那里所做的每个版本的几何形状,多次都要多次将选择添加到模型中,并留下对软件更新几何和选择的艰苦工作。

首先,使用MPHLOAD命令将模型加载到MATLAB®软件中:

mphload命令

编写用于更改几何并求解模型的代码非常简单。通过使用内置的comsolMultiphysics®软件选择,在使用MATLAB®软件更新模型时无需调整任何内容。因此,循环变得比以前短:

更改几何形状的代码

运行此脚本会产生下面显示的结果图。

各种鳍配置的最终温度
散热器中的温度分布,用于不同的鳍构型。

验证选择

您可以通过编写“ Model.Selections”来验证模型中包含的设置。MATLAB®软件将在模型中编写选择的名称(标签):

MATLAB®软件在模型中写下选择的名称

您可以通过使用“ mphgetSelection”函数来找出选择包含的内容,该功能适用​​于geom1_r2_bnd选择给出了这个结果:

mphgetSelection函数的结果

我们学到了与M档案合作的知识

有几种方法可以确保在引入模型几何形状的大型更改时,可以保留模型设置的选择。使用随附的命令Livelink™为了MATLAB®,您可以跟踪指定坐标中的实体号。这种方法的缺点是您必须继续使用这些命令来更新几何形状。如果将模型加载到ComsolDesktop®环境中,该方法将分解。相反,如果您依靠模型树中的命名选择,则可以获得相同的结果,并且还可以在MATLAB®软件命令提示符和ComsolDesktop®中使用模型。

如果您一直想知道我们是否可以在选择中没有实体号码的情况下可以做,那么答案是“是”。正如您在这里看到的那样,我们确实可以在选择中无需手动摆弄实体编号而做。在模型中包括命名选择需要一些工作,但是它们提供了更好的可用性和鲁棒性。

本系列的其他帖子

  1. 与M型档案合作的最佳实践
  2. 如何在选择中手动与实体编号一起工作

MATLAB是Mathworks,Inc.的注册商标。所有其他商标都是其各自所有者的财产。有关此类商标所有者的列表,请参见//www.dvdachetez.com/tm。Comsol AB及其子公司和产品与这些商标所有者的赞助或支持。乐动体育app无法登录


评论(2)

发表评论
乐动体育app
加载...
奥斯卡·迪亚兹(Oscar Diaz)
奥斯卡·迪亚兹(Oscar Diaz)
2015年11月3日

HEJ LARS,
我的模型是在循环运行的MATLAB代码中生成的,为3D静电模拟更新几何和BD条件(电压)。我已经注意到,鉴于我的几何形状的复杂性,有时有些选择在几何布尔操作后最终变为空。我无法找到引起问题的原因,或者是否有其他方法可以定义我的几何形状,因此所有元素/选择都是我在最终域中想要的情况解决方案的方式。
为什么会发生?我在布尔操作中做错了什么,所以我的某些选择是空的,然后我无法分配任何BD道具?
谢谢

拉尔斯·格雷格森(Lars Gregersen)
拉尔斯·格雷格森(Lars Gregersen)
2015年11月4日

嗨,奥斯卡

如果没有看到您的模型和MATLAB代码,就很难说出什么问题。您可以将模型发送给支持,我们将查看它。

如果您以某种方式对几何形状进行了太大的更改,那么选择通常会做意外的事情。工会或交叉点变得意外地空了。
确认您的模型是否正确设置的一组尺寸的最简单方法是保存模型(一旦您使用MATLAB代码构造了模型)为MPH文件,并在COMSOL中打开模型。

探索comsol乐动体育赛事播报博客