Skip to content

VanDerWaalsInteraction

from cascaqit import VanDerWaalsInteraction

VanDerWaalsInteraction

VanDerWaalsInteraction(
    c6: float, cutoff_radius: float, enabled: bool = True
)

Declare a static van der Waals interaction and pass it to AHSProgram(register, interaction=...). Construction does not calculate pair distances.

c6 is in rad*um^6/us and must be finite and nonzero; both signs are supported. cutoff_radius is a finite positive distance in um. The program uses two-dimensional Euclidean distances to compute V_ij = c6 / r_ij**6, including pairs exactly at the cutoff. The term acts on double excitation occupancy n_i n_j.

enabled=False retains the configuration but contributes no pair energy; c6 and cutoff must still be valid. Wrong types raise TypeError; zero c6, nonpositive cutoff or nonfinite values raise ValueError. This coherent interaction does not remove doubly excited states as a hard-blockade approximation would, and differs from the XX channel in NoiseChannel.crosstalk().

from cascaqit import VanDerWaalsInteraction

interaction = VanDerWaalsInteraction(c6=1000.0, cutoff_radius=10.0)
assert interaction.to_ir().operator == "number_number"

See the Rabi interaction project for a runnable distance comparison.

to_ir

to_ir() -> VanDerWaalsInteractionIR

Return VanDerWaalsInteractionIR recording the model, units, number_number operator and coherent evolution type for program export and execution.