COMSOL与MATLAB是可以无缝连接的,有些图形化界面难以实施的操作可以通过MATLAB代码来实现。当我们通过MATLAB对COMSOL进行参数化扫描的时候,会发现随着时间的推移,内存会占用的越来越多,几乎是指数增加,如下图

de5447c062428f5d5ad6be1507434f8d.png

具体如何绘制出这样一幅图可以见我的另外一片博客

  • 个人博客地址
从COMSOL的log文件读取运算时间和内存并绘图​knifelees3.github.io
  • 知乎地址
knife lee:从COMSOL的log文件读取运算时间和内存并绘图​zhuanlan.zhihu.com

我们只需要在每一次循环扫描的时候,都将模型释放掉再重新Load一遍,内存增长的速度就会慢很多,如下图所示

788f9735ba611947f2c77ac07c9aa5bf.png

具体的代码大致如下:

clear;clc;
import com.comsol.model.*
import com.comsol.model.util.*
ModelUtil.showProgress('comsol_progress_inten_1.txt');

% do some sweep  here
for l=1:num

    % load the model
    % We will load the model for each loop to realese the RAM
    model=mphopen('./FineMesh_IntenEnhan_bETheo_Px_Direct.mph');

    % .................



    % clear solutions
    % this step is to avoid too manumy caches in ram
    model.sol('sol1').clearSolution;
    ModelUtil.remove('Model')

end
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐