Psi4#

Usage#

To use Psi4 as an engine, follow these steps:

  1. Install MDI as a Python package, using either Conda (conda install -c conda-forge pymdi) or pip (pip install pymdi).

  2. Acquire and compile Psi4, following the Psi4 installation guide. Installing via Conda is recommended. Prepare a Psi4 input file that specifies the initial molecular geometry of the system and any other desired settings. At the end of the input file, call the energy command with the mdi=True optional argument. For example:

molecule {
O 4.92718 4.99809 1.10308
H 5.80905 5.31488 0.90767
H 4.87602 4.14701 0.667997
}

energy("scf/sto-3g", mdi=True)

Launch Psi4 using the “–mdi” runtime option, which is described in Launching Codes with the MDI Library. For example:

psi4 -i psi4.dat --mdi "-role ENGINE -name my_name -method TCP -port 8021 -hostname localhost" &

MDI Mechanic Psi4 report#

This repo presents test results for the MDI interface implementation in the Psi4 code.

To view the README.md offline, it is suggested that you use grip (i.e., pip install grip).

Basic Functionality Tests#

This section provides the results of several tests performed by MDI Mechanic that are intended to verify that this engine meets the most basic requirements of MDI. Any functioning MDI engine must successfully pass all of these tests. The tests are performed in the listed order, and a failure for one test causes all subsequent tests to be skipped and marked as failed.

Developers seeking to implement or maintain MDI support in an engine should resolve the first failed test (if any) and then generate a new report in order to confirm that the test is passed successfully. Additional information about each test, as well as advice on how to resolve a test if it fails, can be obtained by clicking the test’s status badge. If all of these tests are succussfull, developers are encouraged to begin implementing support for any additional MDI nodes and MDI commands that are appropriate for the engine.

  1. validate_engine The engine builds successfully

  2. min_mdi The engine supports minimalistic MDI communication

  3. errors_correctly The engine correctly responds to unsupported MDI commands

  4. completed_analysis Full analysis of the engine’s supported nodes and commands is available

Nodes#

The graph indicates which nodes have been implemented in this engine and the connections between them.

node_graph

Commands#

The following table indicates which MDI Standard commands are supported by this engine at each node. Supported commands are indicated in green, while unsupported commands are indicated in gray.

Supported Commands#

@DEFAULT

<@

command

<CELL

command

<CELL_DISPL

command

<CHARGES

command

<COORDS

command

<DIMENSIONS

command

<ELEC_MULT

command

<ELEMENTS

command

<ENERGY

command

<FORCES

command

<KE

command

<KE_ELEC

command

<KE_NUC

command

<MASSES

command

<NAME

command

<NATOMS

command

<PE

command

<PE_ELEC

command

<PE_NUC

command

<STRESS

command

<TOTCHARGE

command

<VELOCITIES

command

>+FORCES

command

>CELL

command

>CELL_DISPL

command

>CHARGES

command

>COORDS

command

>ELEC_MULT

command

>ENERGY

command

>FORCES

command

>MASSES

command

>STRESS

command

>TOTCHARGE

command

>VELOCITIES

command

@

command

@INIT_MC

command

@INIT_MD

command

@INIT_OPTG

command

EXIT

command

Acknowledgements#

Badges are obtained from the shields.io project.