Comments (12)
Hello Michal,
I'd be happy to support TURBOMOLE, but the last time I used it was almost 10 years ago as a graduate student. I currently don't have time to write the code to make a good interface, but if you could contribute any codes I'd be glad to work with you on merging it.
Thanks,
- Lee-Ping
from geometric.
I got a fully working TURBOMOLE wrapper in my own code (https://github.com/eljost/pysisyphus/blob/dev/pysisyphus/calculators/Turbomole.py) that supports dscf/ridft/grad/rdgrad/egrad/ricc2 and can parse energies and gradients.
The class basically needs a path to a TURBOMOLE calculation that is already set up (control, basis and so on) and works from this directory, reusing old orbitals and so on. The actual calcuations are run in a TEMPDIR, so the original files don't get overwritten.
Depending on the featureset you need (hessians?) I could try to refactor the class for the use in geomeTRIC (dervied from Engine and so on ...). The parsers are implemented with pyparsing (https://github.com/eljost/pysisyphus/blob/dev/pysisyphus/calculators/parser.py), so this would be an additional dependency ... I guess it would be possible to drop pyparsing and reimplement the relevant parts using only regular expressions.
@leeping, what is your though on this?
from geometric.
We have been attempting to consolidate Engine into the MolSSI project QCEngine which provides a consistent interface to a number of codes. It would be great to steer you in this direction so that in general we can:
- Keep these drivers located in a central place and build off the work of others.
- Have an organization like MolSSI be the long term keeper of something like this to ensure continued maintenance.
- Have a uniform IO so that you can quickly switch to new codes.
We would be very happy to help you get this into to QCEngine!
from geometric.
@eljost it would be great if you could interface your code with geomeTRIC, perhaps through QCEngine. However, won't the requirement for having a set-up calculation violate the principle of having a uniform interface (independent of actual compute engine)? Just a thought. BTW, what I actually need is to be able to use TURBOMOLE in TorsionDrive, so perhaps the fastest way forward is to write a quick and dirty "native" TorsionDrive interface.
from geometric.
Hello @eljost and @mkrompiec ,
Thanks for the nice discussions. I strongly support the QCEngine project and I think the best solution for a geomeTRIC-TurboMole interface would be to have TurboMole supported by QCEngine, then I think everything will work on the geomeTRIC side of things. You would also benefit by having the codes maintained by MolSSI and use TurboMole in everything the QCArchive can do (including but not limited to torsion drives). If you're okay with this, then I imagine the next steps would be that @dgasmith would work directly with you to develop this feature.
I agree with you that another way to run these calculations is to write a "native" TorsionDrive-TurboMole interface. In a separate case, a collaborator has done this for Gaussian because we did not want to inadvertently create any impression that we were making comparisons with its native geometry optimizer. I doubt this would be any easier than writing a geomeTRIC interface, because the TorsionDrive interface would require setting up and running a constrained geometry optimization, whereas the geomeTRIC interface needs a single-point gradient calculation. To me, the single-point calculation sounds easier. Please let me know what you decide.
Thanks,
- Lee-Ping
from geometric.
So the idea would be to implement the TM-interface in MolSSI/QCEngine then I guess. I'm ok with this.
from geometric.
So the Turbomole wrapper is now merged into QCEngine master...
from geometric.
Are you able to run optimizations through the QCArchive ecosystem now?
I actually don't know how to use QCEngine outside of QCArchive and I'm not sure if it was designed to work that way. @dgasmith might have some useful suggestions.
from geometric.
Just wondering what the progress of adding Turbomole is? Also @leeping and @dgasmith, would it be suitable to move the other qm interfaces to use qcengine as well?
from geometric.
Turbomole has been integrated, we should try a few runs to make sure it works for you. In general, I suggest adding to QCEngine as the goto place for building out additional functionality.
from geometric.
Hello Josh,
I'm open to implementing additional functionality into QCEngine and to duplicate all of the functionality in the existing Engine
classes in QGEngine. As the existing Engine
class is used by my group and possibly others as well, I think we should keep them.
- Lee-Ping
from geometric.
Closing this issue because there are no needed development tasks. To use Turbomole with geomeTRIC, it is recommended to use the interface to QCEngine.
from geometric.
Related Issues (20)
- optimizer crash HOT 4
- New minor release? HOT 5
- [BUG] Logging configuration update causes issue in default case of no logging configured HOT 6
- [BUG] Running Transition=True fails with geometric_run_json HOT 1
- Using all the cores while minimizing the structure HOT 1
- Add option to allow success on reaching maxiter HOT 2
- xTB support request HOT 7
- Rebuild coordinate system may fail for `PrimitiveInternalCoordinates` HOT 3
- versioneer does not work with Python 3.12
- How to input Hessian HOT 4
- Breaking certain bonds and getting invidual atoms as fragments with 3 degress of freedom HOT 2
- Using ORCA via ASE with customized input file HOT 4
- Automatically assigned tmin may become too small HOT 52
- Hessian update after rejected step HOT 4
- Ideas for finite_difference_grad.py HOT 4
- permit Hessian computation through Engine? HOT 5
- [Minor BUG]: pip installation HOT 1
- Interactive optimization HOT 3
- ORCA converges in 8 steps, geomeTRIC gets stuck HOT 41
- Issue installing with Python 3.12 HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from geometric.