平台: 所有平台 版本: 所有版本

问题描述

comsolMultiphysics®中中中中的扫描扫描,,批批处理扫描或或。。。

解决方法

概述

模型方法作为一提出,可修改修改修改参数化扫描批处理扫描集群扫描节点,通过通过读取实例等方式实现操作。-mode桌面选项可从行运行运行运行运行扫描扫描扫描扫描扫描扫描集群集群扫描扫描节点

框架

comsolMultiphysics®提供了可能性可能性,支持您和分布式下控制:

参数化扫描

comsolMultiphysics®中的的参数化扫描comsolMultiphysics®实例实例实例具有多个参数实例的的参数化参数化研究研究通常通常,软件软件通常通常通常通常参数化参数化研究研究研究会会会会会依次依次依次处理参数参数实例实例实例实例参数化扫描节点相应研究参数范围。从从从从或或命令运行运行该研究,例如-stdcomsol comsol批处理的选项可以实现这点。研究研究的解解可以作为作为解序解序列列中中的的参数值提供提供(((如果如果如果如果使用使用使用使用使用使用使用使用使用参数参数参数参数参数参数参数参数化解节点下(使用扫描扫描,“作业”下下包含的的的的的参数化参数化扫描扫描扫描节点节点。。。。。。)

模型方法

请观看在comsolMultiphysics®中中参数化研究研究研究页面中视频,获取如何设置设置参数化扫描扫描的操作。。

分布式参数化扫描

如果参数化扫描研究在内存环境中,

  • 在研究作为“参数化”节点节点节点集群计算节点结合使用;
  • 在gui实例中,例如通过通过comsol -nn 4 -nnhost 4启动(这情况下不需要需要“集群”节点)
  • 或者在程序提交脚本的作业中中,

那么,您使用“参数化”的“研究”栏栏中的的分布式参数化扫描选项(或“稳态”研究步骤的分布参数化求解器()。。选项,系统系统将将将扫描扫描参数化参数化参数化参数实例分布到正在运行运行的的进程中。例如例如例如例如实例,并且两个同时完成自己的。输出(((

批处理扫描

批处理扫描参数化扫描相反,前者前者多个comsol批批实例实例gui从从从从从从从中运行中运行的的的中运行中运行中运行扫描扫描扫描扫描扫描扫描扫描扫描扫描扫描扫描研究研究研究研究研究启动启动启动。。这些作业作业作业相互独立相应的中此外,“批处理”节点的的批批设置设置设置栏中提供提供提供提供同步解同步累积探针表的选项通过同步同步解选项

模型方法

““批”可以将的内核数优值优值优值优值,但也优值优值可以可以可以手动设置设置设置设置作业资源资源。。如果外部外部作业作业应该应该仅仅一一可可内核数(在在“作业”下的的“批”节点节点设置设置和和和)并发作业数(“批”节点节点节点节点上)。。这两值的乘积

模型方法

有关“批处理”,请附加,请请博客博客博客强大的批扫描功能

集群扫描

集群扫描不仅与与处理扫描扫描相同的功能功能,还还功能于集群计算设置设置以及远程远程和和和和云云访问访问访问的的接口。。您您外部作业作业外部外部作业外部外部外部作业外部外部外部节点“批”栏中栏中栏中提供提供同步解同步累积探针表选项。博客文章如何使用comsolMultiphysics®中中集群点点点描述“集群”节点节点用法和和。。

模型方法

注:需要“网络网络”(fnl)才才能分布式并行下下运行运行运行运行运行运行运行运行运行集群计算(“参数化”(“参数化”)的的包含包含包含集群扫描节点的具有分布式分布式参数化扫描扫描的的分布式分布式实例实例等(参见参见在集群上行运行comsol®,(获取执行描述描述)。

从命令行参数化扫描

您可以运行包含包含包含参数化参数化扫描扫描的的,例如,例如,通过通过

comsol batch -inputfile mymodel.mph -outputfile out.mph -study std1

对于“参数化”,例如,可,可通过以下实现实现

comsol batch -nn 4 -nnhost 4 -Inputfile mymodel.mph -outputfile out.mph -study std1

在这情况,“参数化”都都运行也就也就说说说

如果您命令指定扫描的集,可以集集集模型模型文件文件中中禁禁用用用用用用用用参数化参数化参数化参数化参数化-pname- 名单通过命令输入设置参数,或者或者使用使用-Paramfile标志从参数如果使用行行方法,则则方法方法方法会为为每个个参数参数参数实例实例生成生成生成生成不同不同解不会同步到一个。

案例库中提供使用使用使用参数化参数化扫描的的示例示例音叉。该确定基本基本振频率,振频率,其中的长度长度l在参数化是变化的。您针对给定的参数范围从从命令行调用行调用此此模型模型(在在在在在在在在在在在中中中中中中中中中禁禁禁禁禁禁用用用用用用

comsol batch -inputfile tuning_fork.mph -outputfile tuning_fork_out.mph \ -pname l -plist 8 [cm],10 [cm],12 [cm]

从而扫描参数L = 8 [CM]10 [cm]12 [CM](为个生成个输出文件)。。空格分隔的文件paramfile.dat,其中第一参数名称名称,其余其余的参数参数

则参数控制参数扫描调用可能类似如下

comsol batch -inputfile tuning_fork.mph -outputfile tuning_fork_out.mph \ -paramfile paramfile.dat

通过模型方法参数化扫描

从命令控制“参数化”的的另种方法使用使用模型方法输入文件需的的参数中中中,模型示例,模型读取输入输入输入文件文件并并并提取提取参数参数参数参数名称名称名称名称,参数值参数值和和和参数参数单位单位。。提取提取提取值用值用值用设置设置设置设置设置设置,“作业”下下“下”参数化参数化扫描扫描子子节((在在在在在在在在中运行中运行中运行研究了此此点点点点点点点点点点来来来来来来来来来来完成完成完成完成完成参数化参数化参数化参数化参数化扫描扫描扫描扫描扫描扫描扫描扫描。。。。。以下以下示例示例代码”中定义新方法:

//加载csv参数文件,加上格式// pname0,pname1,... // punit0,punit1,... // pval00,pval00,... // pval01,pval01,pval11,... // ... // ...,...,... string theStudy =“ std1”;字符串thisFeature =“ param”;//参数扫描(*)字符串thisParam =“ p1”;字符串filename =“ c:\\ models \\ pfile.csv”;string [] [] [] parr = readcsvfile(filename);int lows = parr.length;int cols = parr [0] .length;字符串pnames =“”;字符串punits =“”;字符串[] pvalues = new String [cols]; // Read names from line 0 pNames = pArr[0][0]; for (int col = 1; col < cols; col++) pNames = pNames+","+pArr[0][col]; // Read units from line 1 pUnits = pArr[1][0]; for (int col = 1; col < cols; col++) pUnits = pUnits+","+pArr[1][col]; // Read values from lines 2,3,... for (int col = 0; col < cols; col++) pValues[col] = pArr[2][col]; for (int row = 3; row < rows; row++) for (int col = 0; col < cols; col++) pValues[col] = pValues[col]+","+pArr[row][col]; // Set parameters for thisStudy / thisFeature with(model.study(thisStudy).feature(thisFeature)); set("plistarr", new int[]{}); set("plistarr", pValues); set("pname", new String[]{}); set("pname", pNames); set("punit", new String[]{}); set("punit", pUnits); endwith(); // Run param sweep model.batch(thisParam).run(); // (**)

模型方法

请参见如何使用模型来加速comsol工作工作,获取获取方法简介在在模型开发器中,您您选择开发工具选项卡中的添加方法调用,在全局定义节点下个方法来调用之前的方法。您可以通过右键单击ModelMethod1节点并选择运行来测试该方法。

模型开发器

参数文件pfile.csv是一逗号的文件,其中文件文件文件行参数(l),第二第二参数列(厘米),第三第三第n行包含此列参数值(8,,,,10)。l cm 8 10

基于配置,通过通过模型方法可以行运行运行运行参数化参数化参数化扫描扫描

comsol batch -inputfile tuning_fork.mph -outputfile tuning_fork_out.mph \  -  methodcall methodcall1

该方法包含标志-MethodCall MethodCall1扫描的模型方法加载参数文件中定义参数参数。您您想要想要为为不同不同不同不同不同的的的参数文件文件运行运行运行运行个个扫描扫描扫描扫描扫描扫描扫描扫描扫描扫描扫描扫描不同不同不同不同不同不同不同不同不同不同不同不同不同不同不同不同不同不同不同不同不同不同不同不同不同不同您模型模型,从方法方法方法行连续运行时方法。当参数参数参数文件文件包含包含多多个列列中中参数参数参数参数参数参数参数参数时

如果“参数化”使用参数化求解器((),则则方法运行的求解器序列)需要替换... model.sol(“ sol1”)。runall();//参数求解器(

模型方法

注:Windows®操作系统支持“应用”。

从命令运行批扫描或集群扫描

如果研究中包含批处理扫描集群扫描,并且并且行批模式研究研究研究研究研究研究研究研究研究研究研究研究下下下下下((),则则在处理调用标志标志标志-mode桌面,在窗口上::

comsolbatch.exe -mode desktop -inputfile tuning_fork.mph -outputfile tuning_fork_out.mph

在linux或macOS上上使用

comsol batch -mode desktop -inputfile tuning_fork.mph -outputfile tuning_fork_out.mph

(在5.3a版本,您您在在在在在在- 批次,而不是-mode桌面)。

在这种下,“批”或或集群扫描扫描扫描扫描都按原样同步解同步累积探针表从选中,则同步的执行与从从运行运行的相同。。这这种种种命令命令命令方法方法的一优点优点是是

如果您所提供模型方法的变体读取文件来来传递传递传递传递传递传递批扫描扫描扫描扫描扫描扫描扫描扫描扫描或或或或或或或或或或扫描扫描扫描集群集群集群集群集群集群集群集群集群集群集群扫描扫描的的的的的的的),并定义命令,“批”:...字符串thisFeature =“ batsw”;//批次扫描()...

对于“集群”:...字符串thisFeature =“ clusw”;//群集清扫(*)...

此外,行(**)需要需要以下行以下行

...字符串thisBatch =“ b1”;//对于批处理 /群集清扫(**)model.batch(thisBatch).feature(“ dadef”)。model.batch(thisBatch).feature(“ dadef”)。model.batch(thisParam).run();model.batch(thisBatch).feature(“ dadef”)。run();

gui gui中已相应研究研究,“作业”下下已生成生成生成生成“参数化”节点P1和“批”节点B1。此外,还在新的进程要移除个旧的外部节点。。。

要启动模型控制的的的的批批扫描扫描或或或或或集群集群集群扫描扫描扫描扫描扫描扫描扫描扫描扫描扫描扫描扫描扫描扫描扫描

comsolbatch.exe -mode desktop -inputfile tuning_fork.mph -outputfile tuning_fork_out.mph \ -methodcall methodcall1

在linux或macOS上上:

comsol batch -mode桌面-inputfile tuning_fork.mph -Outputfile tuning_fork_out.mph \ -methodcall methodCall1

(在5.3a版本版本使用- 批次,而不是-mode桌面)。