IsingModel#

class IsingModel(lattice)[source]#

Bases: LatticeModel

The transverse-field Ising model.

This class implements the following Hamiltonian:

\[H = -\sum_{\langle i, j \rangle} J_{ij} Z_{i} Z_{j} - \sum_{i} g_{i} X_{i},\]

where \(i,j\) refer to lattice nodes. The \(\sum_{\langle i, j \rangle}\) is performed over adjacent lattice nodes. This model assumes spin-\(\frac{1}{2}\) particles. Thus, \(X_i\) and \(Z_i\) represent the respective Pauli matrices. \(J_{ij}\) are constants with dimensions of energy and \(g_{i}\) are coupling parameters that determine the relative strength between the external transverse field and the nearest neighbor interactions.

This model is instantiated using a Lattice. For example, using a LineLattice:

line_lattice = LineLattice(num_nodes=10, boundary_condition=BoundaryCondition.OPEN)

ising_model = IsingModel(
    line_lattice.uniform_parameters(
        uniform_interaction=-1.0,
        uniform_onsite_potential=0.0,
    ),
)
Parameters:

lattice (Lattice) – Lattice on which the model is defined.

Attributes

lattice#

Return the input lattice.

Note, that this returns the internal lattice object without copying it. Thus, changing the returned lattice object, will affect the internal lattice stored in this Hamiltonian.

register_length#

Methods

coupling_matrix()[source]#

Return the coupling matrix.

Return type:

ndarray

interaction_matrix()#

Return the interaction matrix

Returns:

The interaction matrix.

Return type:

ndarray

interpret(result)#

Interprets an EigenstateResult in this hamiltonians context.

Parameters:

result (qiskit_nature.second_q.problems.EigenstateResult) – the result to add meaning to.

second_q_op()[source]#

Return the Hamiltonian of the Ising model in terms of SpinOp.

Returns:

The Hamiltonian of the Ising model.

Return type:

SpinOp