# BraketAHS

Documentation for BraketAHS.

`BraketAHS.compute_MPS_evolution`

`BraketAHS.get_atom_coordinates`

`BraketAHS.get_trotterized_circuit_2d`

`BraketAHS.parse_ahs_program`

`BraketAHS.compute_MPS_evolution`

— Method```
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`

.

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_atom_coordinates`

— MethodGenerate atom positions from the ahs program.

`BraketAHS.get_trotterized_circuit_2d`

— Method`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_program`

— Method`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.