Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

C-compatible QCSchema implementation #82

Open
awvwgk opened this issue Jan 20, 2022 · 7 comments
Open

C-compatible QCSchema implementation #82

awvwgk opened this issue Jan 20, 2022 · 7 comments

Comments

@awvwgk
Copy link

awvwgk commented Jan 20, 2022

I'm planning to create a QCSchema implementation which can be used easier with compiled languages. But before I set out to reinvent the wheel, does anyone know about an existing C-compatible QCSchema implementation?

@berquist
Copy link
Contributor

No, but you might want to talk to @susilehtola: http://ccl.net/cgi-bin/ccl/message-new?2021+12+29+001

@susilehtola
Copy link

@berquist thanks for the tag.

Indeed, the more I've thought about this, the more I've realized that there is no perfect solution and we should just try to capitalize on QCSchema: there's no reason to invent many wheels since that will just add to the problem.

I am not very familiar with QCSchema, but I know that it can already store e.g. MO coefficients, meaning that the issue with various basis set orderings and normalizations already exists. @bennybp is there a standard for these data or is it just whatever the programs feed in?

If there is no standard, I fail to see the usefulness since then you can't pass the orbitals from one program to another...

@awvwgk
Copy link
Author

awvwgk commented Jan 21, 2022

I personally find QCSchema also somewhat lacking in features (periodic boundary conditions tops my list).

However it is at least one (open) standard that we have and that we could develop as community. But I fear without adaption outside of the QCEngine ecosystem there won't be no development.

I'm happy to push my software to support QCSchema, to show that it is possible and maybe also useful.

@ghutchis
Copy link
Collaborator

The point was to have at a minimum "a better Molden exchange." That was the baseline. I think we called it "bronze" level.

Frankly, the standard should specify basis set orderings and normalizations.

I don't think there are many independent implementations, besides cclib. I have some partial support in Avogadro but it's not in a released version.

@susilehtola
Copy link

Frankly, the standard should specify basis set orderings and normalizations.

Yup, but this can be done in an "easier" way i.e. the necessary manipulations could be implemented in the QCSchema library so that the programs themselves don't need to be changed; instead, it would suffice to flag the used format in the QCSchema plugin and the interface could do the necessary juggling and normalization.

@susilehtola
Copy link

See also #45 on the ordering issue

@awvwgk
Copy link
Author

awvwgk commented Jul 18, 2023

I created an implementation of QCSchema Molecule in Fortran (https://github.com/grimme-lab/mctc-lib/) for xtb, dftd4, gcp, ... and other programs relying on the same IO library. Still, this is only a solution for one particular ecosystem of QC packages and I'm still interested in having a common library to share between packages.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants