使用 Eigen 加速 B = A.transpose() * B * A 用于密集和稀疏矩阵

问题描述

简短问题:
如何在 Eigen 中加速 ~/.bash_login

  • t 和 k 是大小为 12 的密集矩阵,
  • t 和 k 是大小 >100000 的稀疏矩阵。

长问题:
我正在编写一个基于 Eigen 库的 FEM 求解器。在分析代码时,似乎大部分时间都花在了单一类型的乘法上 - k = t.transpose() * k * t

有两种情况,当我必须执行这样的计算时。第一个是评估梁单元的刚度矩阵。在这种情况下,矩阵小而密集。 t为旋转矩阵,k为单元刚度矩阵,正在转换为全局坐标系。

第二种情况是使用主从消除应用多点约束 (MPC) 时。在那一刻,操作是在全局组装刚度矩阵上执行的,该矩阵既稀疏又非常非常大。 t 是变换矩阵,它改变了 k 的几行和几列。

有什么办法可以加速这个计算吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)