summaryrefslogtreecommitdiff
path: root/simple_thin_layer_model/delta_2photon_noise.xmds
blob: 2cb3a5205937777bc7a07ba471f26bd5cc725558 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
<?xml version="1.0"?>
<simulation xmds-version="2">

	<name>delta_2photon_noise</name>

	<author>E. Mikhailov, M. Guidry</author>
	<description>
		Solving 3 level atom in lambda field configuration,
		no field propagation included. Noise on delta_2photon.
	</description>

	<features>
		<benchmark />
		<bing />
		<fftw plan="patient" />
		<openmp />
		<auto_vectorise />
		<globals>
			<![CDATA[
			const complex g=10;
			const complex gbc=.001;
			const complex Split = .1;
			const double tset=5;
			const double alpha = 0.001;

			complex Gab, Gca, Gcb, GCB;
			complex Ep,Ed,Epc,Edc;
			complex noise;
			double delta_2photon, delta_d;
			complex rba,rac,rbc;
			complex rBA,rAC,rBC;
			complex drive_field0=1, probe_field0=1;
			]]>
		</globals>
	</features>

	<geometry>
		<propagation_dimension> t </propagation_dimension>
		<transverse_dimensions>
			<dimension name="delta_2photon" lattice="256"  domain="(-2, 2)" />
		</transverse_dimensions>
	</geometry>

	<driver name="multi-path" paths="16" />

	<noise_vector name="drivingNoise" kind="wiener" type="real" method="dsfmt" >
    		<components>Eta</components>
  	</noise_vector>

	<vector name="density_matrix" type="complex" dimensions="delta_2photon">
		<components>raa rbb rcc rab rca rcb rAB rCA rCB</components>
		<initialisation>
			<![CDATA[
			raa = 0;
			rbb = 1;
			rcc = 0;
			rab = 0;
			rca = 0;
			rcb= 0;
			rAB = 0;
			rCA = 0;
			rCB= 0;
			]]>
		</initialisation>
	</vector>

	<sequence>
		<integrate algorithm="ARK45" interval="13.0" tolerance="1e-7">
			<samples>100</samples>
			<operators>
				<integration_vectors>density_matrix</integration_vectors>
				<dependencies>drivingNoise</dependencies>
				<![CDATA[
				delta_d=0;

				noise = Eta*alpha;
				Ed=drive_field0;
				Ep=probe_field0;

				Epc = conj(Ep);
				Edc = conj(Ed);

				Gab=g+i*(delta_d+delta_2photon+1*noise);
				Gca=g-i*(delta_d);
				Gcb=gbc+i*(Split + delta_2photon+0*noise);
				GCB=gbc+i*(-Split + delta_2photon+0*noise);


				rba=conj(rab);
				rac=conj(rca);
				rbc=conj(rcb);
				rBA=conj(rAB);
				rAC=conj(rCA);
				rBC=conj(rCB);

				draa_dt = -i*Epc*rab+i*Ep*rba-i*Edc*rac+i*Ed*rca-2*g*raa
				          -i*Edc*rAB+i*Ed*rBA-i*Epc*rAC+i*Ep*rCA;
				drbb_dt =  i*Epc*rab-i*Ep*rba+g*raa-gbc*rbb+gbc*rcc
				          +i*Edc*rAB-i*Ed*rBA;
				drcc_dt =  i*Edc*rac-i*Ed*rca+g*raa-gbc*rcc+gbc*rbb
				          +i*Epc*rAC-i*Ep*rCA;

				drab_dt = -Gab*rab+i*Ep*(rbb-raa)+i*Ed*rcb;
				drca_dt = -Gca*rca+i*Edc*(raa-rcc)-i*Epc*rcb;
				drcb_dt = -Gcb*rcb-i*Ep*rca+i*Edc*rab;

				drAB_dt = -Gab*rAB+i*Ed*(rbb-raa)+i*Ep*rCB;
				drCA_dt = -Gca*rCA+i*Epc*(raa-rcc)-i*Edc*rCB;
				drCB_dt = -GCB*rCB-i*Ed*rCA+i*Epc*rAB;
					]]>
				</operators>
			</integrate>
		</sequence>




		<!-- The output to generate -->
		<!--<output format="ascii" filename="delta_2photon_noise_alpha_1.xsil">-->
		<output>
			<group>
				<sampling basis="delta_2photon" initial_sample="yes">
					<dependencies>density_matrix </dependencies>
					<moments>eit_signal mor_signal rab_rlOut rab_imOut rca_rlOut rca_imOut raaOut rbbOut rccOut noiseOut PDl PDr</moments>
					<![CDATA[
					rab_rlOut = rab.Re();
					rab_imOut = rab.Im();
					rca_rlOut = rca.Re();
					rca_imOut = rca.Im();
					raaOut = raa.Re();
					rbbOut = rbb.Re();
					rccOut = rcc.Re();
					noiseOut = noise.Re();
					PDl = norm( 1/sqrt(2)*(rab - rAB) + i/sqrt(2)*(rca + rCA) );
					PDr = norm( 1/sqrt(2)*(rab - rAB) - i/sqrt(2)*(rca + rCA) );
					eit_signal = PDl + PDr;
					mor_signal = PDl - PDr;
					]]>
				</sampling>
			</group>
		</output>

	</simulation>
	
<!-- 
vim: ts=2 sw=2 foldmethod=indent: 
-->