comsol-batch sweep

本blog主要介绍comsol中batch sweep的作用。参考:
https://www.comsol.com/blogs/the-power-of-the-batch-sweep/

Why do we need batch sweep: batch sweep v.s. parametric sweep.

在comsol进行simulation时我们通常会用到参数扫描。它的一个问题是,必须等所有扫描结束之后才能查看计算结果。而batch sweep就是解决上述问题的:它会把计算好的参数化解自动保存成文件方便后续的可视化和后处理。简单总结就是: to retrieve solutions for a parametric sweep during the solution process.

Each parameter can be solved for in a separate process that can be started and stopped independently. The results for the parameters that have already been solved for can be stored as an .mph file for each parameter value and you can open and review any number of them during the solution process.

How?

  1. Add a batch sweep
    跟添加parametric sweep的方法类似,右击study node,添加一个batch sweep,并添加要sweep的parameter。
    image
  1. Batch sweep setting
image

现在解释一下上图中的几个参数设置

  • 默认文件名为 batchmodel.mph,用于自动创建一个 .mph 文件序列,其中的每个文件对应于扫描中的每个参数。文件名可以更改,不过对于此演示示例,我们仍保留此文件名,生成的 .mph 文件名将分别为 batchmodel_sn_1.mph,batchmodel_sn_2.mph,……,

  • 存储路径:如果你有网络浮动许可证,并且希望使用远程安装的 COMSOL 软件执行这一计算,那么可以使用指定服务器路径 选项。

  • 扫掠前 一栏有两个选项:清除网格和清除解。我们清除了这两个复选框,因为只有在执行远程集群计算或云计算时,这两个选项才真正有用,因为这时我们希望经网络传递的文件尽可能小(只有使用网络浮动许可证时才能这样做)。

  • 在扫描过程中 一栏有两个选项:同步解 和同步累积探针表。同步解 将存储的所有文件中的结果收集到我们要开始仿真的“主模型”.mph 文件中,最终结果与运行参数化扫描的结果极其相似。我们选择清除这个复选框,因为在这个示例中我们假定只希望查看每个结果。此外,如果扫描的数量过于庞大,则收集全部结果可能要消耗大量的时间和内存。同步累积探针表 保持选中,表示对探针的输出结果进行累积,与完整的求解信息相比,收集这种信息非常轻松

  • 在扫掠后 一栏中,我们勾选输出模型到文件 复选框,这确保了自动保存的 .mph 文件包含解

  1. 探针数据保存到文件


    image

要将探针数据保存到文件,不能使用常规的探针表。而要使用一种特殊的累积探针表。当异步生成的数据要在表格中按照一定的顺序排列时,就可以使用“累积探针表”。请记住,一般而言,我们不清楚不同的参数对应的解应该按照什么顺序排列,而“累积探针表”帮我们解决了这一难题。

  1. 运行批处理扫描
    现在可以单击计算 启动批处理扫描。求解过程中,在图形 窗口下的信息窗口中会看到一个外部进程 窗口


    The External Process window.

    In the External Process window, we get an overview of the running batch processes and their status.

At this stage, large parts of the user interface are noninteractive, but we can click on Detach job(右下角) to regain control of the user interface.(注意,这个时候comsol仍然一直在进行计算)

image

  • We can now stop all processes or click on a row and stop that particular process.
  • We can even click on a process in the table with the status Done and open it up in a separate COMSOL Desktop window. There, we can perform any kind of visualization or postprocessing task that we would normally perform on a model.

To get back to the live update of the process status, click on Attach Job in the upper left corner of the External Process window.

其他

Performance

如果扫描中每次计算速度都很快,且不需要很大的内存,就如上面的示例,那么批处理扫描所需的计算时间会比常规的参数化扫描的时间长。因为采用批处理扫描时,每个参数都会启动一个 COMSOL Multiphysics 进程。如果扫描中每个参数的计算都比较费时,那么这个额外启动进程的时间就相对较短,可忽略不计。

Handling of Crashes for Certain Parameters

For example, a zero permittivity means that we are feeding the solver with an ill-defined (even singular) equation (similar to 0 = 1) and you will get an error message indicating that the solver couldn’t find a solution corresponding to that erroneous parameter. Again, you can still open and postprocess the saved .mph files. If you correct the table by changing the entry to a nonzero entry, you can run the batch job again without getting error messages. Note that while the error exists, you cannot attach the External Process window without getting an error. The Accumulated Probe table is still updated for the other parameters when you attach the window. As soon as you correct the error and run, you can again access the External Process window by attaching it.

Managing Multicore Processing

如果你在使用一台多核机器,这是现代电脑的常见配置,那么可以更改批处理 的相关设置,控制批处理扫描中可运行的并发进程数,以及每个进程可用的内核数。假如使用的是六核机器,那么可以将并发作业数 改为三,将内核数 改为二。这样设置后,可以并行求解三个参数,每个求解器进程可使用两个内核,所以对于上面的示例,仿真时间减少了一半。

  • 如果所执行的仿真中每个参数的计算量都很,那么可以增加并发作业的数量,使其与计算机的内核数相同。
  • 对于计算量较大的问题,应该将并发作业数保留为,以完全利用求解器的多核处理能力。

在批处理扫描 节点研究扩展一栏下控制并发作业数。这种情况下,软件会用实际内核数除以并发作业数,自动计算出“内核数”。(要实现自动计算,务必不要勾选批处理 设置下的内核数 复选框,因此不会使用以灰色显示的数字 1。)

批处理扫描 vs 集群扫描

COMSOL Multiphysics 的所有许可证类型都可以使用批处理扫描 功能。如果你有网络浮动许可证,则还可以使用集群扫描 这一附加功能。这两个扫描功能很相似,不过集群扫描 选项多了远程计算和集群配置等设置。“集群扫描”功能可以将大量扫描分散到一个(很可能是大型的)集群上。这种做法显著提高了效率,因为独立扫描(也称作易并行计算)所涵盖的范围通常很广。

你可能感兴趣的:(comsol-batch sweep)