The Hamiltonian generator defines two formats:
- The "default" plaintext format
- An alternate plaintext format based on the HamLib format
The time evolution tool uses a third format (see the included JSON file)
HamLib's format is actually intended to be stored in an HDF5 file, not a plaintext file, so that gives us a fourth format.
Internally, the tools we use (OpenFermion, Qualtran, etc) use at least two different formats
- A list of dense Pauli strings (including the identity entries) and coefficients
- A dictionary where the value is the coefficient and the key is a tuple of tuples, where the inner tuples are a Pauli matrix and a qubit index
There may be additional formats to consider: compatibility with other tools, other internal representations hiding inside the libraries we use, etc.
I don't have a strong opinion about which format is "right". I'm not even worried about us having The One True Format. We can support as many as is appropriate. We just want to identify the formats worth supporting, document them, and implement them consistently throughout the various parts of QHAT.
The Hamiltonian generator defines two formats:
The time evolution tool uses a third format (see the included JSON file)
HamLib's format is actually intended to be stored in an HDF5 file, not a plaintext file, so that gives us a fourth format.
Internally, the tools we use (OpenFermion, Qualtran, etc) use at least two different formats
There may be additional formats to consider: compatibility with other tools, other internal representations hiding inside the libraries we use, etc.
I don't have a strong opinion about which format is "right". I'm not even worried about us having The One True Format. We can support as many as is appropriate. We just want to identify the formats worth supporting, document them, and implement them consistently throughout the various parts of QHAT.