Source code for qiskit_nature.second_q.hamiltonians.lattices.square_lattice

# This code is part of a Qiskit project.
#
# (C) Copyright IBM 2021, 2023.
#
# This code is licensed under the Apache License, Version 2.0. You may
# obtain a copy of this license in the LICENSE.txt file in the root directory
# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.
#
# Any modifications or derivative works of this code must retain this
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.

"""The square lattice"""
from typing import Tuple, Union

from .boundary_condition import BoundaryCondition
from .hyper_cubic_lattice import HyperCubicLattice


[docs]class SquareLattice(HyperCubicLattice): """Square lattice.""" def __init__( self, rows: int, cols: int, edge_parameter: Union[complex, Tuple[complex, complex]] = 1.0, onsite_parameter: complex = 0.0, boundary_condition: Union[ BoundaryCondition, Tuple[BoundaryCondition, BoundaryCondition] ] = BoundaryCondition.OPEN, ) -> None: """ Args: rows: Length of the x direction. cols: Length of the y direction. edge_parameter: Weights on the edges in x and y direction. When it is a single value, it is interpreted as a tuple of length 2 consisting of the same values. Defaults to 1.0. onsite_parameter: Weight on the self-loops, which are edges connecting a node to itself. Defaults to 0.0. boundary_condition: Boundary condition for each direction. The available boundary conditions are: ``BoundaryCondition.OPEN``, ``BoundaryCondition.PERIODIC``. When it is a single value, it is interpreted as a tuple of length 2 consisting of the same values. Defaults to ``BoundaryCondition.OPEN``. """ self._rows = rows self._cols = cols super().__init__( size=(rows, cols), edge_parameter=edge_parameter, onsite_parameter=onsite_parameter, boundary_condition=boundary_condition, ) @property def rows(self) -> int: """Length of the x direction Returns: the length """ return self._rows @property def cols(self) -> int: """Length of the y direction Returns: the length """ return self._cols