mir-group / phoebe

A high-performance framework for solving phonon and electron Boltzmann equations
https://mir-group.github.io/phoebe/
MIT License
85 stars 19 forks source link

Set matrix symmetrization default to false #193

Closed jcoulter12 closed 1 year ago

jcoulter12 commented 1 year ago

In the current version of Phoebe, the scattering matrix is symmetrized before the relaxons solver is run as a default. In many cases, this is unnecessary, and for large matrices, is slower than the diagonalization of the matrix -- therefore, to avoid users running into this, we set the symmetrizeMatrix input option to false by default (and make a a further note about this in the input docs).

This is because, of course, dong A + A^T/ 2 for a distributed matrix is not really a sensible operation. We leave the option there, to be used for production runs. Tests show that in copper, the difference between the solve with and without matrix symmetrization is < 1 W/m/K.