Skip to content

Commit

Permalink
Merge pull request #570 from Avimita-amc8313/hamlib-changes
Browse files Browse the repository at this point in the history
parameters can be varied from command line
  • Loading branch information
rtvuser1 authored Jul 12, 2024
2 parents 022808c + cef24ae commit 5b4d0ed
Show file tree
Hide file tree
Showing 4 changed files with 135 additions and 76 deletions.
147 changes: 74 additions & 73 deletions hamlib/qiskit/benchmarks-qiskit.ipynb

Large diffs are not rendered by default.

17 changes: 16 additions & 1 deletion hamlib/qiskit/hamlib_simulation_benchmark.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@

import hamlib_simulation_kernel
from hamlib_simulation_kernel import HamiltonianSimulation, kernel_draw, get_valid_qubits
from hamlib_utils import create_full_filenames, construct_dataset_name
from hamlib_utils import create_full_filenames, construct_dataset_name, set_default_parameter_values
from hamiltonian_simulation_exact import HamiltonianSimulationExact, HamiltonianSimulationExact_Noiseless


Expand Down Expand Up @@ -241,6 +241,9 @@ def run(min_qubits: int = 2, max_qubits: int = 8, max_circuits: int = 1,
if hamlib_simulation_kernel.dataset_name_template == "File key not found in data":
print(f"ERROR: cannot load HamLib data for Hamiltonian: {hamiltonian}")
return

# Set default parameter values for the hamiltonians
set_default_parameter_values(hamlib_simulation_kernel.filename)

# assume default init_state if not given
if init_state == None:
Expand Down Expand Up @@ -358,11 +361,23 @@ def get_args():
parser.add_argument("--verbose", "-v", action="store_true", help="Verbose")
parser.add_argument("--random_pauli_flag", "-ranp", action="store_true", help="random pauli flag")
parser.add_argument("--init_state", "-init", default=None, help="initial state")
parser.add_argument("--global_h", "-param_h", default=None, help="paramater h")
parser.add_argument("--global_U", "-param_U", default=None, help="paramater U")
parser.add_argument("--global_enc", "-param_enc", default=None, help="paramater enc")
parser.add_argument("--global_pbc_val", "-param_pbc_val", default=None, help="paramater pbc_val")
parser.add_argument("--global_ratio", "-param_ratio", default=None, help="paramater ratio")
parser.add_argument("--global_rinst", "-param_rinst", default=None, help="paramater rinst")
return parser.parse_args()

# if main, execute method
if __name__ == '__main__':
args = get_args()
hamlib_simulation_kernel.global_U = args.global_U
hamlib_simulation_kernel.global_enc = args.global_enc
hamlib_simulation_kernel.global_ratio = args.global_ratio
hamlib_simulation_kernel.global_rinst = args.global_rinst
hamlib_simulation_kernel.global_h = args.global_h
hamlib_simulation_kernel.global_pbc_val = args.global_pbc_val

# configure the QED-C Benchmark package for use with the given API
# (done here so we can set verbose for now)
Expand Down
4 changes: 2 additions & 2 deletions hamlib/qiskit/hamlib_simulation_kernel.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@
global_enc = None
global_ratio = None
global_rinst = None
global_h = 0.1
global_pbc_val = "pbc"
global_h = None
global_pbc_val = None

# Saved circuits and subcircuits for display
QC_ = None
Expand Down
43 changes: 43 additions & 0 deletions hamlib/qiskit/hamlib_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import requests
import zipfile
import json
import hamlib_simulation_kernel

verbose = False

Expand Down Expand Up @@ -40,6 +41,48 @@ def create_full_filenames(hamiltonian_name):
return hamiltonian_files[hamiltonian_name]
else:
return hamiltonian_name + '.hdf5'

def set_default_parameter_values(filename):
if filename == 'tfim.hdf5' or filename == 'heis.hdf5':
if hamlib_simulation_kernel.global_h == None:
hamlib_simulation_kernel.global_h = 0.1
if hamlib_simulation_kernel.global_pbc_val == None:
hamlib_simulation_kernel.global_pbc_val = 'nonpbc'
hamlib_simulation_kernel.global_U = None
hamlib_simulation_kernel.global_enc = None
hamlib_simulation_kernel.global_ratio = None
hamlib_simulation_kernel.global_rinst = None
elif filename == 'random_max3sat-hams.hdf5':
if hamlib_simulation_kernel.global_ratio == None:
hamlib_simulation_kernel.global_ratio = 2
if hamlib_simulation_kernel.global_rinst == None:
hamlib_simulation_kernel.global_rinst = '00'
hamlib_simulation_kernel.global_U = None
hamlib_simulation_kernel.global_enc = None
hamlib_simulation_kernel.global_h = None
hamlib_simulation_kernel.global_pbc_val = None
elif filename == 'FH_D-1.hdf5':
if hamlib_simulation_kernel.global_U == None:
hamlib_simulation_kernel.global_U = 0
if hamlib_simulation_kernel.global_enc == None:
hamlib_simulation_kernel.global_enc = 'bk'
if hamlib_simulation_kernel.global_pbc_val == None:
hamlib_simulation_kernel.global_pbc_val = 'nonpbc'
hamlib_simulation_kernel.global_ratio = None
hamlib_simulation_kernel.global_rinst = None
hamlib_simulation_kernel.global_h = None
elif filename == 'BH_D-1_d-4.hdf5':
if hamlib_simulation_kernel.global_U == None:
hamlib_simulation_kernel.global_U = 2
if hamlib_simulation_kernel.global_enc == None:
hamlib_simulation_kernel.global_enc = 'gray'
if hamlib_simulation_kernel.global_pbc_val == None:
hamlib_simulation_kernel.global_pbc_val = 'nonpbc'
hamlib_simulation_kernel.global_ratio = None
hamlib_simulation_kernel.global_rinst = None
hamlib_simulation_kernel.global_h = None
else:
print("No such hamiltonian is available.")

def extract_dataset_hdf5(filename, dataset_name):
"""
Expand Down

0 comments on commit 5b4d0ed

Please sign in to comment.