# Analog Hamiltonian Simulation

`Braket.AnalogHamiltonianSimulation`

— Type`AnalogHamiltonianSimulation`

Struct representing instructions for an analog Hamiltonian simulation on a neutral atom device.

`Braket.AnalogHamiltonianSimulation`

— Method`AnalogHamiltonianSimulation(register::AtomArrangement, hamiltonian) -> AnalogHamiltonianSimulation`

Constructs an `AnalogHamiltonianSimulation`

on a specific atom arrangement `register`

and with `Hamiltonian`

terms `hamiltonian`

.

`Braket.discretize`

— Function`discretize(ahs::AnalogHamiltonianSimulation, device::Device)`

Creates a new `AnalogHamiltonianSimulation`

with all numerical values represented as `Dec128`

objects with fixed precision based on the capabilities of the `device`

.

`Braket.Hamiltonian`

— Type`Hamiltonian`

Abstract type representing a term in the Hamiltonian to simulate.

`Braket.AtomArrangementItem`

— Type`AtomArrangementItem`

Represents a coordinate and filling in a setup for neutral atom simulation.

`Braket.AtomArrangementItem`

— Method`AtomArrangementItem(coord::Tuple{Number, Number}, site_type::SiteType=filled)`

Create a coordinate with filling `site_type`

(either `vacant`

or `filled`

). Default filling is `filled`

.

`Braket.TimeSeriesItem`

— Type```
TimeSeriesItem
TimeSeriesItem(time::Number, value::Number)
```

Struct representing a `value`

in a `TimeSeries`

which occurs at `time`

.

`Braket.TimeSeries`

— Type```
TimeSeries
TimeSeries()
```

Struct representing a series of values in a neutral atom simulation.

`Braket.Field`

— Type```
Field
Field(time_series::TimeSeries, [pattern::Pattern]) -> Field
```

Representation of a generic field in a `Hamiltonian`

.

`Braket.ShiftingField`

— Type```
ShiftingField <: Hamiltonian
ShiftingField(magnitude::Union{Field, TimeSeries}) -> ShiftingField
```

Represents a shifting field in a `Hamiltonian`

which changes the energy of the Rydberg level in an `AnalogHamiltonianSimulation`

.

\[H_{sf}(t) = - \Delta(t) \sum_k h_k \left| r_k \right\rangle\left\langle r_k \right|\]

Where $\left| r_k \right\rangle$ is the Rydberg state of atom $k$, and $h_k$ is the local pattern of unitless real numbers between 0 and 1.

The argument `magnitude`

represents the global magnitude time series $\Delta(t)$, where time is in units of seconds and values are in units of radians / second.

`Braket.DrivingField`

— Type```
DrivingField <: Hamiltonian
DrivingField(amplitude::Union{Field, TimeSeries}, phase::Union{Field, TimeSeries}, detuning::Union{Field, TimeSeries}) -> DrivingField
```

Represents a driving field in a `Hamiltonian`

which coherently transfers atoms from the ground state to the Rydberg state in an `AnalogHamiltonianSimulation`

.

\[H_{df}(t) = \frac{1}{2} \Omega(t)\exp(i \phi(t)) \sum_k \left( | g_k \rangle\langle r_k | + h.c.\right) - \Delta(t) \sum_k| r_k \rangle\langle r_k |\]

Where $\left| g_k \right\rangle$ is the ground state of atom $k$ and $\left| r_k \right\rangle$ is the Rydberg state of atom $k$.

**Arguments**

`amplitude`

represents the global amplitude $\Omega(t)$. The time is in units of seconds, and the value is in radians/second.`phase`

represents the global phase $\phi(t)$. The time is in units of seconds, and the value is in radians/second.`detuning`

represents the global detuning $\Delta(t)$. The time is in units of seconds, and the value is in radians/second.

`Braket.ir`

— Method`ir(ahs::AnalogHamiltonianSimulation)`

Generate IR from an `AnalogHamiltonianSimulation`

which can be run on a neutral atom simulator or quantum device.