diff options
author | Eugeniy Mikhailov <evgmik@gmail.com> | 2014-04-22 11:48:18 -0400 |
---|---|---|
committer | Eugeniy Mikhailov <evgmik@gmail.com> | 2014-04-22 11:48:18 -0400 |
commit | addbb92ff06b21d2188eeefdb17692beb85e4b1c (patch) | |
tree | ded7ca8cc46e6318e025ad211cb278e724e32913 /eit.xmds | |
download | eit_filter_simulations-addbb92ff06b21d2188eeefdb17692beb85e4b1c.tar.gz eit_filter_simulations-addbb92ff06b21d2188eeefdb17692beb85e4b1c.zip |
Hunter's initial release
Diffstat (limited to 'eit.xmds')
-rw-r--r-- | eit.xmds | 136 |
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> |