BraketAHS

Documentation for BraketAHS.

BraketAHS.compute_MPS_evolutionMethod
compute_MPS_evolution(ψ::MPS,
                      circuit::Vector{Vector{ITensor}},
                      max_bond_dim::Int,
                      cutoff::Float64;
                      compute_truncation_error::Bool=false)

Evolve the MPS ψ according to the Trotterized circuit circuit. max_bond_dim controls the maximum bond dimension of the MPS, and cutoff controls the SVD truncation at each evolution step. At each step, the per-atom <Sz> observable is computed and stored. If compute_truncation_error is true, the error due to truncation is computed at each step. The default is false.

Warning

Computing the truncation error at every step is very computationally expensive.

Returns the <Sz> value on each atom at each time step, and the truncation error at each time step (0. at all times if compute_truncation_error is false), and ψ after evolution.

BraketAHS.get_trotterized_circuit_2dMethod
get_trotterized_circuit_2d(sites, τ, n_steps, N, Vij::Matrix{Float64})

Second order Trotterization circuit for a time-dependent Hamiltonian, for a time step τ and n_steps total time steps, on N total atoms. sites defines the site indices in the MPS used to build the circuit. Returns a Vector{Vector{iTensor}} list of gates at each time step.

BraketAHS.parse_ahs_programMethod
parse_ahs_program(parsed_args) -> (Vij, protocol, N)

Parse the AHS program stored in JSON format at program_path and prepare experimental results directory at experiment_path. Returns prepared experiment protocol protocol as a NamedTuple with keys (:time_steps, :rabi_driving, :global_detuning, :local_detuning, :pattern). Vij is the generated inter-atomic potential, and N is the total number of atoms.