0 votes
asked by (220 points)

Following from 1, I'm interested in adding a non-Hermitian eigenvalue solver to ITensor. Looking at iterativesolvers.h, ITensor implements a version of Davidson which uses ITensor's various structs. I was wondering if it's possible to use a third-party eigensolver routine (such as Arnoldi from ARPACK) in ITensor. This would involve extracting the raw matrix data from the matrix object, which could then be passed to ARPACK. Is this feasible, or would I be better off trying to implement an algorithm within ITensor's framework (similarly to how Davidson is implemented)?

PS Thank you for your great work!

1 Answer

+1 vote
answered by (52.6k points)

Hi, yes we do need to and plan to add an Arnoldi code similar to Davidson. We actually had one in an older version of ITensor, and just need to put it back in.

So it is on our to-do list, and Matt Fishman has this as a high priority (he was the one who recently also added the gmres algorithm for iteratively solving linear equations).

I don't think we will use ARPACK, since it would become a dependency for ITensor and I've heard there are some issues with ARPACK and that it is not maintained much anymore.

Best regards,

commented by (220 points)
Thank you Miles, that's quite exciting and will be of immediate benefit to my research.
Welcome to ITensor Support Q&A, where you can ask questions and receive answers from other members of the community.

Formatting Tips:
  • To format code, indent by four spaces
  • To format inline LaTeX, surround it by @@ on both sides
  • To format LaTeX on its own line, surround it by $$ above and below
  • For LaTeX, it may be necessary to backslash-escape underscore characters to obtain proper formatting. So for example writing \sum\_i to represent a sum over i.
If you cannot register due to firewall issues (e.g. you cannot see the capcha box) please email Miles Stoudenmire to ask for an account.

To report ITensor bugs, please use the issue tracker.