From owner-chemistry@ccl.net Wed Dec 29 20:03:00 2021 From: "Susi Lehtola susi.lehtola[A]alumni.helsinki.fi" To: CCL Subject: CCL:G: Quantum chemistry interoperability library? Message-Id: <-54551-211229200146-21194-7rtQ2Gr4JTnCcVrw8RVEAg:-:server.ccl.net> X-Original-From: Susi Lehtola Content-Language: en-US Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=UTF-8 Date: Wed, 29 Dec 2021 20:01:29 -0500 MIME-Version: 1.0 Sent to CCL by: Susi Lehtola [susi.lehtola{=}alumni.helsinki.fi] Hello, I am again hitting my head against the wall, since I am having trouble passing data from one quantum chemistry code to another. What we are missing as a community is a standard interoperability library for passing basis set and wave function data from one program to another. The de facto standard is GAUSSIAN's formatted checkpoint library, but it also has some deficiencies; for instance, it's not machine precision. Because the library should store all the necessary data for at least SCF wave functions, that is, the Gaussian basis set and the molecular orbitals (MOs) and their occupation numbers, an interface to this library could also serve as a tool for checkpointing calculations that have not converged. Some pieces of the necessary functionality are certainly around. Many quantum chemistry programs have implemented their own formatted checkpoint i/o functions. Quantum chemistry analysis programs have needed to implement their own parsers for the .fchk / MOLDEN / etc formats. I do not think that writing such a common interface library should be too difficult. All that is needed is 1. a data structure that is able to express the data in a common format and 2. input and output functions to translate the data from/to specific quantum chemistry code formats. In addition to the .fchk and molden formats, the common interface library should also be able to read various programs' native data files > from disk, like DENS and XDENS in TURBOMOLE. Since many pieces of the puzzle are already around, and the problem affects the whole community, I would like to get everyone's feedback on this idea. If there was, say, a portable open-source C++ library with C, Fortran and Python frontends for handling molecular wave function data, would you be willing to use it in your own program package? What kinds of features would you need in it? Does such a library already exist? Susi PS. I work as a Software Scientist at the Molecular Sciences Software Institute at Virginia Tech (http://molssi.org), but I am sending this message from my Helsinki address since it's what I've used here for close to a decade. -- ------------------------------------------------------------------ Mr. Susi Lehtola, PhD Adjunct Professor susi.lehtola:+:alumni.helsinki.fi University of Helsinki http://susilehtola.github.io/ Finland ------------------------------------------------------------------ Susi Lehtola, FT dosentti susi.lehtola:+:alumni.helsinki.fi Helsingin yliopisto http://susilehtola.github.io/ ------------------------------------------------------------------