iodata icon indicating copy to clipboard operation
iodata copied to clipboard

Decontraction of basis sets

Open tovrstra opened this issue 3 years ago • 0 comments

(This was part of #146.)

Quoting @PaulWAyers: *It would be nice to have a tool to convert a contracted basis set (and its MOs) into a completely decontracted (100% primitives) format. This is especially useful for dumping *.wfx and .wfn. It's also useful (very occassionally) since decontracted basis sets are often preferable for small, highly-charged polycations (e.g., isoelectronic series).

See #175 for a preliminary implementation. To implement this in a more useful way, also a conversion of orbital coefficients and density matrices to the new basis should be constructed at the same time. One possibility is to let the decontraction code also return a (sparse) transformation matrix to convert arrays in the original basis to the decontracted one. Another option is to implement this feature as a utility function outside of iodata.basis, e.g. in some utility module, which takes care of all aspects: decontracting the basis and (efficiently) converting all arrays to the new basis, returning everything as an updated IOData instance. (This could be a good example of a prepare function in #191.) One approach does not exclude the other and I'm fine with having both because they serve different use cases.

tovrstra avatar Apr 03 '21 06:04 tovrstra