Closed WardLT closed 2 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.
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)
A few thoughts:
NWChemHarness
, should be able to expand the parsing infrastructure to support handling optimizations. So, parse_output
can call functions from the programharness.models.Molecule
.@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?
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
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.
I made a procedure harness for NWChem's relaxation awhile back: #281
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
compute
drivers seems to all not effect geometryAdditional context I've got time to work on this, just need some direction :)