You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
The BernyProcedure currently gets the compute engine to use from the keywords dictionary used to define keywords for the optimization procedure. I think it would be cleaner to get the engine value from the specification of the compute model instead. This would keep all keywords related to the compute engine in one dictionary, and all keywords related to the optimization in the other keywords dictionary.
The way it currently is
water=Molecule.from_data("pubchem:water")
input_spec=QCInputSpecification(
driver="gradient",
model={"method": "b3lyp", "basis": "6-31g"},
# Keywords for compute enginekeywords={"psi4keyword": "psi4value"},
)
opt_input=OptimizationInput(
initial_molecule=water,
input_specification=input_spec,
protocols={"trajectory": "all"},
# Define compute engine and keywords for pyberny# This seems an odd combination of keywordskeywords={"program": "psi4", "bernykeyword": "bernyvalue"},
)
qcng.compute_procedure(opt_input, 'berny')
Then this line gets the "program" keyword to get a compute engine.
Describe the solution you'd like
water=Molecule.from_data("pubchem:water")
input_spec=QCInputSpecification(
driver="gradient",
model={"method": "b3lyp", "basis": "6-31g"},
# QC program and its associated keywords kept togetherkeywords={"program": "psi4", "psi4keyword": "psi4value"},
)
opt_input=OptimizationInput(
initial_molecule=water,
input_specification=input_spec,
protocols={"trajectory": "all"},
# Don't mix the program definition with keywords specific to the optimizerkeywords={"bernykeyword1": "bernyvalue1"},
)
qcng.compute_procedure(opt_input, 'berny')
Actually, perhaps the confusion (for me) around where the "program" is defined would be better addressed by this proposal instead, which seeks to improve a few of the issues I came across while implementing various procedures. MolSSI/QCElemental#264
Is your feature request related to a problem? Please describe.
The
BernyProcedure
currently gets the compute engine to use from the keywords dictionary used to define keywords for the optimization procedure. I think it would be cleaner to get the engine value from the specification of the compute model instead. This would keep all keywords related to the compute engine in one dictionary, and all keywords related to the optimization in the other keywords dictionary.The way it currently is
Then this line gets the "program" keyword to get a compute engine.
Describe the solution you'd like
Change this line as follows:
Current:
Desired:
Since geometric uses a different (internal) mechanism for accessing compute engines, this change would only affect the
BernyProcedure
The text was updated successfully, but these errors were encountered: