summaryrefslogtreecommitdiff
path: root/eit.xmds
diff options
context:
space:
mode:
Diffstat (limited to 'eit.xmds')
-rw-r--r--eit.xmds136
1 files changed, 136 insertions, 0 deletions
diff --git a/eit.xmds b/eit.xmds
new file mode 100644
index 0000000..50419f5
--- /dev/null
+++ b/eit.xmds
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<simulation xmds-version="2">
+
+ <!-- While not strictly necessary, the following two tags are handy. -->
+ <author>Hunter Rew</author>
+ <description>
+ Model of 3 state atom
+ </description>
+
+ <!--
+ This element defines some constants. It can be used for other
+ features as well, but we will go into that in more detail later.
+ -->
+ <features>
+ <precision> double </precision>
+ <globals>
+ <![CDATA[
+ real drive;
+ real decay;
+ real decay_bc;
+ complex r_ca;
+ real probe = .0001;
+ real delta1;
+ real dephase_bc;
+
+ ]]>
+ </globals>
+ <validation kind="run-time"/>
+ <arguments>
+ <argument name="drive_arg" type="real" default_value="0.1" />
+ <argument name="decay_arg" type="real" default_value="10.0" />
+ <argument name="decay_bc_arg" type="real" default_value="0.001" />
+ <argument name="domain_min" type="real" default_value="-1" />
+ <argument name="domain_max" type="real" default_value="1" />
+ <argument name="delta1_arg" type="real" default_value="0" />
+ <argument name="dephase_bc_arg" type="real" default_value="0" />
+ <argument name="final_time" type="real" default_value="10000" />
+ <![CDATA[
+ drive = drive_arg;
+ decay = decay_arg;
+ decay_bc = decay_bc_arg;
+ delta1 = delta1_arg;
+ dephase_bc = dephase_bc_arg;
+ r_ca = decay - i*delta1;
+ ]]>
+ </arguments>
+ </features>
+
+ <!--
+ This part defines all of the dimensions used in the problem,
+ in this case, only the dimension of 'time' is needed.
+ -->
+ <geometry>
+ <propagation_dimension> t </propagation_dimension>
+ <transverse_dimensions>
+ <dimension name="detuning" lattice="256" domain="(domain_min, domain_max)" />
+ </transverse_dimensions>
+ </geometry>
+
+ <!-- A 'vector' describes the variables that we will be evolving. -->
+ <vector name="Gamma" type="complex">
+ <components> r_ab r_cb </components>
+ <initialisation>
+ <![CDATA[
+ r_ab = decay + i*(delta1 + detuning);
+ r_cb = decay_bc + i*detuning + dephase_bc;
+ ]]>
+ </initialisation>
+ </vector>
+ <vector name="population" type="complex" dimensions="detuning">
+ <components>
+ Paa Pbb Pcc Pab Pca Pcb
+ </components>
+ <initialisation>
+ <![CDATA[
+ Pcc = .5;
+ Pbb = .5;
+ Paa = Pab = Pca = Pcb = 0;
+ ]]>
+ </initialisation>
+ </vector>
+
+ <sequence>
+ <!--
+ Here we define what differential equations need to be solved
+ and what algorithm we want to use.
+ -->
+ <integrate algorithm="ARK89" interval="final_time" tolerance="1e-10">
+ <samples>10</samples>
+ <operators>
+ <integration_vectors>population</integration_vectors>
+ <![CDATA[
+ dPcc_dt = i*drive*(-Pca) - i*drive*Pca + decay*Paa - decay_bc*Pcc + decay_bc*Pbb;
+
+ dPbb_dt = i*probe*Pab - i*probe*(-Pab) + decay*Paa - decay_bc*Pbb + decay_bc*Pcc;
+
+ dPaa_dt = -i*probe*Pab + i*probe*(-Pab) - i*drive*(-Pca) + i*drive*Pca - 2*decay*Paa;
+
+ dPab_dt = -r_ab*Pab + i*probe*(Pbb-Paa) + i*drive*Pcb;
+
+ dPca_dt = -r_ca*Pca + i*drive*(Paa-Pcc) - i*probe*Pcb;
+
+ dPcb_dt = -r_cb*Pcb - i*probe*Pca + i*drive*Pab;
+ ]]>
+ <dependencies>Gamma</dependencies>
+ </operators>
+ </integrate>
+ </sequence>
+
+ <!-- This part defines what data will be saved in the output file -->
+ <output format="hdf5" >
+ <sampling_group basis="detuning" initial_sample="yes">
+ <!-- <moments>PaaR PaaI PbbR PbbI PccR PccI PabR PabI PcaR PcaI PcbR PcbI</moments>
+ <dependencies>population</dependencies>
+ <![CDATA[
+ PaaR = Paa.Re();
+ PaaI = Paa.Im();
+ PbbR = Pbb.Re();
+ PbbI = Pbb.Im();
+ PccR = Pcc.Re();
+ PccI = Pcc.Im();
+ PabR = Pab.Re();
+ PabI = Pab.Im();
+ PcaR = Pca.Re();
+ PcaI = Pca.Im();
+ PcbR = Pcb.Re();
+ PcbI = Pcb.Im();
+ ]]> -->
+ <moments>PabI</moments>
+ <dependencies>population</dependencies>
+ <![CDATA[
+ PabI = Pab.Im();
+ ]]>
+ </sampling_group>
+ </output>
+</simulation>