python调用comsol (2)
python调用comsol (2)
用Python调用comsol执行参数化分析的基本流程,大致可以先用comsol的图形界面建立好某个参数下的结构和设置完成一次模拟,保存文件为xx.mph
。然后调用mph库,load刚才保存的文件。mph这个库相当于把comsol的java接口做一个封装,它本身提供的接口非常有限,因此实际操作一般还是直接调用里面的java模型。
1 | import mph |
由于comsol这部分手册写的令人难以理解,所以实际操作一般就是用mph里提供的inspect方法来猜测一下应该怎么设置。比如下面这个是Template.mph的目录树,以Interpolation 1为例,前面长的名字Interpolation 1叫作Label,后面括号里的int1叫作Name,后面花括号里的int1叫作Tag,我们用接口调用comsol里面的对象时,是指定它的Tag。
比如我们想要调用comp1对象时,需要先确定comp1所属的类,然后用提供的类方法接口调用它,我们inspect一下java_model这个对象
1 | mph.inspect(java_model) |
结果是
我们发现里面有一个component方法,于是就可以通过
1 | java_model.component('comp1') |
这样的方法来获得comp1对象,有点类似python类中的property方法。methods方法是用来获取这些对象的,要更改对象的属性,比如想要更改插值函数int1的插值文件,可以inspect一下int1
1 | mph.inspect(java_model.func('int1')) |
发现它有一个叫filename的property,于是就可以用set方法来更改这个属性的值
1 | java_model.func('int1').set('filename', 'newfilename') |
其他大致的设置可以参考comsol用户手册以及inspect不断猜测进行设置..