zerothi / sisl

Electronic structure Python package for post analysis and large scale tight-binding DFT/NEGF calculations
https://zerothi.github.io/sisl
Mozilla Public License 2.0
201 stars 60 forks source link

Create fast lapack functions #32

Closed zerothi closed 5 years ago

zerothi commented 7 years ago

Instead of using solve, dot etc we may speed things up by simplifying some of the routines, e.g. eigh and solve.

zerothi commented 7 years ago

This, sadly requires some additional work.

Currently the routines zhegst does not exist in scipy which makes generalized eigenvalue problems difficult to solve.

zerothi commented 7 years ago

They were added in scipy/scipy#7927 but will first be available in 1.1.0

zerothi commented 6 years ago

Currently, the solve method is fast. I will add more later.

zerothi commented 5 years ago

This has actually been partially implemented in 1cdec31d9ae6127c90fabeb0ff0f714726dc3091 by moving calls to direct LAPACK functions.

It is thus enabled using a simple routine which quickly fetches the corresponding LAPACK routine with very little overhead.

Note that typically this is only required if a method is called many times! Like for self-energies with small matrix sizes.

I'll consider this closed since the tools is there.