def __init__(self,
                 x_dim: float,
                 y_dim: float,
                 tunneling: float,
                 coulomb: float,
                 periodic: bool=True,
                 iterations: int=1,
                 adiabatic_evolution_time: Optional[float]=None,
                 qubits: Optional[Sequence[cirq.Qid]]=None
                 ) -> None:
        """
        Args:
            iterations: The number of iterations of the basic template to
                include in the circuit. The number of parameters grows linearly
                with this value.
            adiabatic_evolution_time: The time scale for Hamiltonian evolution
                used to determine the default initial parameters of the ansatz.
                This is the value A from the docstring of this class.
                If not specified, defaults to the sum of the absolute values
                of the entries of the two-body tensor of the Hamiltonian.
            qubits: Qubits to be used by the ansatz circuit. If not specified,
                then qubits will automatically be generated by the
                `_generate_qubits` method.
        """
        self.x_dim = x_dim
        self.y_dim = y_dim
        self.tunneling = tunneling
        self.coulomb = coulomb
        self.periodic = periodic
        self.iterations = iterations

        if adiabatic_evolution_time is None:
            adiabatic_evolution_time = 0.1*abs(coulomb)*iterations
        self.adiabatic_evolution_time = cast(float, adiabatic_evolution_time)

        super().__init__(qubits)