上篇blog我们介绍了怎么利用sequence来导出数据。这篇blog提供了一个更简单的方法,利用accumulated probe table。
-
在definitions node下面添加一个global probe,并在表达式部分写上我们要计算的量
-
然后在study node下的parametric sweep下,有一个
output while solving
,有一个probes,选中accumulated probe table
。
-
运行之后会发现在results node下的tables 部分多出了一个表格
修改表格的storage位置,改为如下所示
这样之后的计算数据都会保存在建立的csv文件中。经过多次尝试,发现没完成一次运算loop,新的数据就会append在表中。
注:更好的操作是先建立一个表格并选定存储位置,然后在步骤2选择output file时就把建立的表格选好
-
最后得到的数据格式如下所示:
上述算法用COMSOL Desktp计算没有问题,但是当用Matlab 控制的时候出现了问题,导出的表格始终没有数据写入,而是只有表头。(待解决)
解决:这个可能是一个bug。要想解决这个问题,需要把store table 的on file
改成in model
,然后利用mphtable导出存储在in model里面的数据
str=mphtable(model,'tbl1');
S_data=str.data
注:用windows 的command line来运行mph文件可以在指定路径下生成数据文件
C:\Program Files\COMSOL\COMSOL52a\Multiphysics\bin\win64> comsolbatch -inputfile Model1.mph -outputfile Model1_solved.mph
但是当我们把mph文件提交到cluster上运行的时候,生成的文件还是只有表头没有数据(待解决)不过在cluster的用户文件夹下发现了一个没有表头的数据文件。