如何在声学仿真中使用求解器建议

2019年 8月 30日

在对大型工业规模的声学问题进行建模时,使用手头的硬件有效地解决这些问题可能具有一定的挑战性。即使在优化网格、利用对称性和使用其他建模技巧之后也会发生这种情况。一个重要的、有时会被忽视的技巧是使用自动生成的迭代求解器建议。这些建议往往比默认求解器更节省内存,甚至更快。这篇博客,我们探讨了求解器建议的使用,以及它们如何在声学模型中发挥作用。

求解器建议简介

当使用 COMSOL Multiphysics® 软件的附加产品——声学模块中的任何物理场设置和求解模型时,会生成所谓的求解器建议。这些是预定义的求解器(通常是迭代求解器),我们在其中进行了所有必要的设置,以使它们适用于选定的单物理场或多物理建模场景。

大多数物理场接口中使用的默认求解器是直接求解器,对于所有适合你机器上可用内存的中等问题,它都是高效且稳健的。但是,当模型变得很大时,可能会耗尽内存。在这种情况下,其中的一个求解器建议可能会帮到你。

通常,当增加声学模型中的频率并需要相应地细化网格时,你将需要其中一个求解器建议。如果你决定对某些狭小的声学区域使用更详细的模型,如热黏性声学,以便对损失进行更详细的建模,也会发生这种情况。

COMSOL Multiphysics® 中的求解器建议屏幕截图。
求解器建议在模型开发器中的外观示例。

那么,如何选择和启用求解器建议?有以下几个重要步骤:

  1. 右键单击感兴趣的研究,然后选择显示默认求解器
  2. 展开求解器配置稳态求解器 节点(对于瞬态模型,将会展开瞬态求解器 节点)
    • 在这里,将看到正在使用的求解器(已启用,通常称为建议的直接求解器 (标签))
    • 还将看到禁用的建议迭代求解器(描述)(标签)(可能有多个)
  3. 右键单击并选择 启用(或按 F4),启用迭代求解器

在上面的列表中,标记 是生成求解器建议的物理场或多物理场耦合的标签(或简称)。例如,压力声学将含有标签 acpr。如果你正在求解声-结构相互作用 (ASI) 问题,标签 asb1 将来自声-结构边界 耦合特征。

在模型开发器树中的紧邻物理场或多物理场耦合的位置可以看到标签。这些建议还包括对所使用的求解器设置的简短描述;例如,带有 GMRES with GMG(见上图)表示 GMRES 迭代求解器与(几何)多重网格预处理器。各种求解器的详细信息可以在 声学模块用户指南 的“Modeling with…”部分看到。在这篇博客中,我们不会详细描述所有求解器建议,而是介绍相关内容。

选择显示默认求解器 命令后,模型中的物理场接口和多物理场耦合将被分析。求解器建议是基于物理场接口的,每个接口都有一个建议,如标签所示。如果使用多物理场耦合,则会为耦合问题生成一个建议(显示耦合特征标签)。这也意味着,如果对模型进行更改(例如添加额外的物理场并使用多物理场耦合进行耦合),那么必须重新生成求解器。这一步很重要,最好通过右键单击 节点(例如,解 1)并选择将求解器重置为默认设置 来完成。也可以选择建立一个新的研究,并在这时生成默认求解器。

在某些特殊情况下,需要特别注意并进行一些手动设置,例如手动耦合不同的物理场或将集总电路模型与有限元模型做结合。下列几个用于传感器建模的案例教程模型就使用了这个策略:

对于手动耦合物理场接口的情况,COMSOL® 软件将默认使用分离式求解器方法。这种策略在一些情况下会有用,但如果模型是强耦合的,则不会起作用。这时,必须切换到全耦合 求解器,如上面列出的三个示例所示。

模型开发器中的求解器配置屏幕截图。
求解器配置在具有全声振耦合模型的集总接收器中扩展。

COMSOL Multiphysics 的每个新版本都会更新声学模块中建议的求解器,它在适合的情况下采用了最新的求解器技术,并改进了单物理场和多物理场问题的分析方式。COMSOL 希望使建议的求解器尽可能稳健和高效。

尽管这篇博客是专门为声学应用写的,但其他物理领域也会产生求解器建议,包括结构力学、传热和 CFD。

这里我们学到的最重要的经验是,每当对模型进行更改(通过添加物理场或引入新的耦合)时,通常都必须更新或重新生成求解器。在下一节中,我们将演示两个求解器建议用于声学应用的模型示例。

2  使用求解器建议的声学模型

第一个示例,我们来看一个声-结构相互作用问题,敞开式扬声器箱中的驱动器教程模型。下面的视频展示了如何为这个模型选择建议的迭代求解器。

 

在敞开式扬声器箱中的驱动器教程模型中的激活迭代求解器建议。

从默认直接求解器切换到建议的迭代求解器时,能提升多少速度和节省多少内存?当然,这取决于你可以使用的硬件和模型大小。本例中的模型是在一台已经使用了三年的3.6 GHz(4 核),32 GB 内存的 Intel® Core™ i7-4790 CPU 台式机上求解的。

求解 3500 Hz 的扬声器模型(使用适当的网格)需要 8 GB 的内存,使用默认的直接求解器需要 64 s。使用建议的迭代求解器,需要 4.7 GB 内存并需要 63 s(求解 3.8e5 自由度)。将频率提高到 5000 Hz(通过将模型中的网格参数lambda_min343[m/s]/3500[Hz] 更改为 343[m/s]/5000[Hz])需要 18.8 GB 内存,默认直接求解器需要 243 s,而使用建议的迭代求解器,则需要 6.8 GB 内存, 87 s(求解 8.3e5 自由度)。因此,随着模型大小的增加,速度的提升和内存的节省会相对增加。

在第二个示例中,我们解决了一个更大的热黏性声学问题:穿孔板的转移阻抗教程模型的变体。在 COMSOL 案例库中,该模型有两个版本:一个分析四分之一的穿孔(使用对称性,称为 transfer_impedance_perforate.mph),另一个对整个穿孔进行建模(称为 transfer_impedance_perforate_withDD.mph)。有关不同求解器建议的性能和简短描述,请查看 PDF 文档

 

穿孔板的转移阻抗教程模型中激活的迭代求解器建议。

下一步

想要详细了解声学模块如何满足你的分析需求吗?请联系我们,了解有关 COMSOL 软件的更多信息。

更多资源


评论 (0)

正在加载...
浏览 COMSOL 博客