addCoupling

Implements dipole coupling between two subsystems.

Contents

Syntax

Description

Detailed Description and Examples

Coupling between two subsystems A and B is based upon the lowering and raising operators $\sigma^{-}$ and $\sigma^{+}$ of these systems. For each coupling a Hamiltonian is added to the total Hamiltonian of the system.

$$H_y = y (\sigma_A^{+}\sigma_B^{-} + \sigma_A^{-}\sigma_B^{+})$$

if the level option is given when calling the function, not the full lowering and raising operators are used but rather operaters which perform lowering and raising only between the specified levels.

Example of a qbit coupled to a mode of the lightfield.

s = System;
s.addEntity(Nlevel(1),'qbit');
s.addEntity(Qoscillator(3,1),'lightfield');
s.addCoupling('qbit','lightfield',0.05);
s.addExternalField(Gausspulse(0.04,50,15,1),'qbit'); %external laser pulse excites the system
s.setTimestep(0.1);
s.simulate();

%plot part of the gained data
plot(s.time, s.getEnergy('qbit'));
hold on;
plot(s.time, s.getEnergy('lightfield'));
plot(s.time, s.getOpValue(s.H));
s.plotEfields;
xlabel('Time');
ylabel('Energy');
title('Qbit Coupled to a Lightfield');
thelegend = legend('qbit' ,'lightfield','total','laserpuls','Location','northeast');
set(thelegend,'FontSize',16);

Example of specified couplings a seen in the Figure below

clear; close all;
s = System;
a1 = Nlevel([1 1]); %equidistant three level subsystem
a2 = Nlevel([1 1]);
s.addEntity(a1,'a1');
s.addEntity(a2,'a2');
s.addCoupling('a1',[2 1] ,'a2', [1 0], 0.05);
s.addCoupling('a1', [1 0],'a2',[1 0],0.05);
s.addExternalField(Gausspulse(0.05,50,15,1),'a1');
s.setTmax(400);
s.setTimestep(0.1);
s.simulate();
%plot part of the gained data
plot(s.time, s.getEnergy('a1'));
hold on;
plot(s.time, s.getEnergy('a2'));
plot(s.time, s.getOpValue(s.H));
xlabel('Time in s');
ylabel('Energy in J');
title('Gap Test');
thelegend = legend('a1' ,'a2','Total','Location','northeast');
set(thelegend,'FontSize',16);