如何在COMSOL 6.1中对特征频率求解结果进行索引?
COMSOL 6.1 特征频率单值索引与计算方法
为什么直接索引失效?
solid.freq是全局数据集的表格变量,不是可直接索引的数组类型,所以像solid.freq(1)这种写法自然不生效。
正确提取单个特征频率的方法
方法1:用evalEigenvalue函数直接提取
这是COMSOL官方推荐的提取单特征频率的方式,语法简单直接:
evalEigenvalue('sol1', 1)
其中sol1是你的特征频率研究对应的解名称,第二个参数是特征频率的序号(从1开始计数)。要实现前两个频率相加,直接写:
evalEigenvalue('sol1', 1) + evalEigenvalue('sol1', 2)
方法2:转成数组后批量索引
如果需要处理多个频率,先把特征频率转为数组更方便:
- 右键点击结果>数据集,选择派生数据集>阵列
- 在阵列设置里选你的特征频率解(比如
sol1),设置要提取的特征值范围(比如1到你需要的最大序号) - 定义变量时用阵列数据集加索引,比如:
solid.freq('arr1', i)
arr1是你刚创建的阵列数据集名称,i就是索引值,之后就能用这个变量做各种计算。
修正withsol的用法
你之前的withsol语法错了,正确针对特征频率的写法要指定eigenfreq()索引:
withsol('sol1', solid.freq, eigenfreq(1))
别再用setind(Omega,1)了,Omega是内部特征值变量,但在withsol里得用eigenfreq()来指定序号。
内容的提问来源于stack exchange,提问作者H. Vabri
相关产品推荐
相关产品推荐

