如何从命令行运行comsolMultiphysics®

2020年12月9日

您是否曾经想从命令行中运行同一模型文件的重复变体并自动导出数据?只需在ComsolMultiphysics®软件的用户界面(UI)中进行一些准备工作,您可以使用可以自动化大量模型设置和从命令行进行评估的方法来增强模型文件。让我们找出如何…

从模型中写出数据

为了将此工作流置于上下文中,让我们看一下母线的教程模型,我们在我们的Comsol®软件简介。该模型具有多个参数化输入以及要报告的输出。

让我们从我们的模型中写入一些数据开始。我们的模型已经设置了几个图,包括温度场之一。右键单击此功能,然后选择将图像添加到导出选项。你会得到一个结果>出口>图像功能,具有下面屏幕截图中所示的设置。在这些设置中,输入输出文件名。请注意,您还可以调整图像布局根据需要进行设置。您可以添加其中几个功能,并导出其他类型的数据,包括动画,网格信息等。要立即写出所有这些数据,请右键单击出口分支并选择全部导出选项。

comsol多物理模型树的屏幕截图,结果节点打开到导出分支,并打开了图像导出设置。
屏幕截图显示出口分支在结果用于写出图像文件。

我们还提取一些标量值。添加一个评估组功能结果分支,并添加任何数量的不同派生标量值。例如,以不可缺少的在所有域上的损失并评估最高温度。在设置中评估组,还指定文件名,如下所示。

评估组节点的屏幕截图打开到设置,该设置将数字数据指定为文件。
屏幕截图显示评估组,将数字数据的组合写入文件。

结合评估组出口功能,我们可以从模型中写出任何数量的数据。现在,让我们看一下如何对此进行自动化。

通过模型方法自动操作

为了开始使用方法,我们需要在Microsoft®Windows™操作系统上工作,因为我们将使用应用程序构建器功能。单击申请构建器功能区中的按钮,或使用键盘快捷键控件+Shift+A,将您带到下面显示的界面。我们在这里要做的一个任务是与方法分支。给它一个名字,例如my_method,但我们不要把任何东西都放入其中。通过左上角的按钮或键盘快捷键控制+Shift+M返回模型构建器。

应用程序构建器放大并在空白方法编辑窗口上打开,以编写一种从命令行运行comsol多物理的方法。
使用方法的应用程序构建器的屏幕截图。

回到模型构建器后,让我们添加一个调用我们的方法。右键单击全球定义然后去方法调用子菜单,您将在其中看到我们刚创建的方法。添加此,并确保也更改标签场地。通常,您可以使用与应用程序构建器中使用的名称相同的名称。您可以在下面的屏幕截图中看到方法调用功能有三个按钮:

  1. 跑步
  2. 暂停
  3. 编辑方法

编辑方法按钮是一个方便的快捷方式,可以将我们带回应用程序构建器,这是我们将一些代码投入我们的方法后立即做的。

设置窗口的屏幕截图,显示如何在模型构建器中的方法中添加调用。
在模型构建器中添加调用我们的方法,这将使我们运行并编辑该方法。

If you’re not very familiar with coding, there’s really just one thing that you’ll need to know for what we’re about to do: A method contains snippets of code, with each line containing some kind of modification or action on the model. There are two ways to extract these code snippets from the Model Builder.

第一种方法是去开发人员选项卡并单击记录方法。然后,您可以在模型构建器中执行一系列操作,直到单击停止记录按钮。相关代码将保存到新方法中。

在第二种方法中,右键单击模型树中的功能,(在大多数情况下)您会看到一个将作为代码复制到剪贴板子菜单。在学习模型的分支,其中之一是跑步。选择此选项以复制用于将研究运行到剪贴板的代码段。转到方法编辑器和粘贴(Control+V)查看代码:

model.study(“ std1”)。run();

第二种方法更简单,因此让我们在此博客文章中使用此方法。

带有菜单扩展的导出设置的屏幕截图,并将选项副本作为代码作为选择的剪贴板。
复制代码以运行模型树的特定节点。

我们可以添加更多可以自动数据提取的代码。我们已经设置了将数据写入磁盘的功能,现在我们只需要在方法中包括这些功能的运行即可。右键单击出口功能,再次使用将作为代码复制到剪贴板在里面跑步命令,如上所示。将这些粘贴到您的方法中,然后重复评估组。您完成的方法看起来像这样:

model.study(“ std1”)。run();model.Result()。export()。run();model.result()。essulationGroup(“ eg1”)。run();

由于我们现在正在通过一种方法写入磁盘,因此我们可能还需要更改一些默认的安全性偏好。去文件菜单>优先>安全,允许所有文件的文件系统访问。此设置显示在下面的屏幕截图中。否则,您只能写信给暂时的应用程序文件位置,通过文件菜单>优先>文件

“首选项”窗口的屏幕截图打开了安全选项。
修改安全性首选项,以便在需要时将方法写入文件。

现在,当您运行此方法时,整个模型都会重新解决,并将新数据和图像文件写入磁盘。最后一步是从命令行中完成所有操作,而无需使用UI。

从命令行运行

保存此修改后的文件,调用my_file.mph,并关闭Comsol多物理UI。提起Windows命令提示并导航到包含文件的目录。确保将COMSOL®可执行文件的路径添加到路径环境变量中,并输入以下命令:

comsolbatch -inputfile my_file.mph -pname tbb,vtot -plist“ 1 [cm]”,“ 10 [mv]” -methodcall my_method -nosave -noSave

这将打开模型并修改其中两个的值全局参数,由于结合-pname- 名单争论。在这种情况下,参数TBB改变条形厚度和VTOT是施加的电压。

我们的自定义方法将被调用(由于-MethodCall参数)并将运行模型并写出数据。其他可选论点- 非索引意味着未保存模型文件。有关此和所有其他可选参数的完整详细信息,请参见“ comsol命令”部分comsol多物理参考手册

我们去那里:修改模型和写出数据的整个过程被简化为一个命令!

我们还能做什么?

当然,我们在这里所做的是一个非常最小的示例,以证明运行模型和编写输出的自动化,但是我们可以做更多的事情。您可以将所需的任何代码本质上放入模型方法中。例如,您可以包含将:

此外,值得一提的是,还有一个替代工作流,可以通过工作序列功能(此方法不使用方法)。

最后,值得注意的是你可以并行运行多个不同的批处理作业同时,如果您拥有具有很多内存和核心的机器,这特别有吸引力。

微软和Windows是美国和/或其他国家的Microsoft Corporation的注册商标或商标。


评论(0)

发表评论
乐动体育app
加载...
探索comsol乐动体育赛事播报博客