edvinolo / CIS-Floquet

For finding eigenvalues of Floquet Hamiltonian with the Hamiltonian from a CIS basis
MIT License
0 stars 0 forks source link

Setting up the sparse matrices #12

Open edvinolo opened 7 months ago

edvinolo commented 7 months ago

Currently, the Hamiltonian and the dipole matrices are read in a dense format, converted to LIL in cis_Floquet, and then converted to CSC in the class_Floquet initialization. Since the matrices don't change when changing omega and intensity, it would probably be better to do the conversion dense -> LIL -> CSC only once, and then feed the CSC matrices to cis_Floquet and then class_Floquet.

edvinolo commented 1 month ago

The sparse-input branch has changes to read the input matrices in COO format instead of dense.

I also have a local branch where I use COO instead of LIL when building the H_FL and only build the upper triangular part. The assembly speed is much improved from my tests (order of magnitude). Will have to change so that the H_FL matvec can be done by the class_Floquet instance, without it doing factorization, since I don't store the lower triangular part of H_FL in that case.