MolSSI / QCEngine

Quantum chemistry program executor and IO standardizer (QCSchema).
https://molssi.github.io/QCEngine/
BSD 3-Clause "New" or "Revised" License
168 stars 80 forks source link

Geometry Optimization within QC Codes #197

Closed WardLT closed 2 years ago

WardLT commented 4 years ago

Is your feature request related to a problem? Please describe. I would like to use the optimizers baked in to QC codes to perform geometry optimizations. My concern that using geoMETRIC could be especially inefficient with MPI codes as it will call mpiexec very frequently.

Describe the solution you'd like A Procedure that calls the geometry optimization for NWChem.

Describe alternatives you've considered

Additional context I've got time to work on this, just need some direction :)

dgasmith commented 4 years ago

Great, this is not exactly an uncommon request :). I think a ProcedureHarness is the way forward here where this harness would inherit from the NWChemHarness. The main caveat here is that the program in the ProcedureHarness could only be NWChem. So you have this inner/outer program specification which must be the same.

You should be able to share a great deal of infrastructure, but the output parsing will be a bit different.

I think we would want to refactor the Harness a bit to be a general construct rather than a program/procedure specific one as well. So some thought would need to go into here.

As a note this should be thought about in a general manner of "my foundational program can do many things, how do I box its capabilities where the QCArchive architecture views it as separate pieces".

@Lnaden @sjayellis @mattwelborn @loriab might want to comment here as well.

mattwelborn commented 4 years ago

Is this a problem that MDI could solve? (Since the concern is about communication performance between geometric and nwchem, rather than needing to use nwchem's geometry optimizer specifically)

loriab commented 4 years ago

A few thoughts:

dgasmith commented 4 years ago

@mattwelborn @taylor-a-barnes I think that this is problem that MDI will solve in the future (performance). But we also need to consider specific algorithms in NWChem (STEPPER) and Gaussian that do not have OSS driver counterparts. As noted QC programs are often very tightly coupled and difficult to pry apart in the manner that we wish, so this is more of a question of what do we need in the next month?

WardLT commented 4 years ago

I'll try to make a ProcedureHarness for the NWChem optimizer, since that seems to be a simpler route forward and let you know if I see much of an improvement over geoMETRIC+QCEngine

dgasmith commented 4 years ago

Great! Ping us if you have any issues. I think one item to note is that we may not be able to parse all intermediate gradients easily.

WardLT commented 2 years ago

I made a procedure harness for NWChem's relaxation awhile back: #281