Skip to content

Draft: Basic MDI Communications

Ericka Miller requested to merge mdi-basics into master

Establish <ENERGY and >COORDS commands in the MDI-yucca interface.

MDI commands will be implemented such that yucca will run "normally" once, then pause and wait for commands from a driver prior to termination.

The >COORDS command will update atomic position coordinates from the driver.

The <ENERGY command will re-run the last method stage of the input file, and return the state-averaged energy to the driver.

To-Do List:

  • Initialize MDI communication in main.cpp
    • Make it so yucca can take -mdi command-line arguments
    • Add conditionals such that yucca runs as normal when no MDI options are passed in
  • Set up an MDI node in main.cpp
    • Set up the run_mdi() in util/mdi_interface.cpp
    • Establish that the basic @DEFAULT and EXIT commands are properly implemented with MDI mechanic
  • Set up the <ENERGY command to check for updated coordinates and re-run most recent Method_ class
    • Use MDI mechanic to verify basic implementation (MDI is receiving something from yucca)
    • Set up a mini MDI driver to test that MDI is receiving the right energy value from yucca
    • Expand <ENERGY command to re-run most recent Method_ class
  • Set up the >COORDS command to modify the Geometry_ class
    • Use MDI mechanic to verify basic implementation (MDI is receiving something with the right data type/shape from yucca)
    • Set up a mini MDI driver to test that yucca is correctly changing the coordinates and producing the proper energy values for all methods

This addresses Task B of Issue #3

Edited by Ericka Miller

Merge request reports