summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MOR_5_levels_with_doppler_and_propagation/Nlevels_with_MOR.xmds51
1 files changed, 30 insertions, 21 deletions
diff --git a/MOR_5_levels_with_doppler_and_propagation/Nlevels_with_MOR.xmds b/MOR_5_levels_with_doppler_and_propagation/Nlevels_with_MOR.xmds
index 86aa117..a55cf6b 100644
--- a/MOR_5_levels_with_doppler_and_propagation/Nlevels_with_MOR.xmds
+++ b/MOR_5_levels_with_doppler_and_propagation/Nlevels_with_MOR.xmds
@@ -180,28 +180,37 @@
<components>EdL EdR EpL EpR</components>
<initialisation>
<![CDATA[
- // Initial (at starting 'z' position) electromagnetic field does not depend on detuning
- // as well as time
- // constant input
- /*
- EdL=EdLo;
- EdR=EdRo;
- EpL=EpLo;
- EpR=EpRo;
- */
-
- // amplitude noise modulated
- double r1 = 2.0*(1.0*rand()/RAND_MAX) - 1.0; // random number -1 .. +1
- double r2 = 2.0*(1.0*rand()/RAND_MAX) - 1.0; // random number -1 .. +1
- double r3 = 2.0*(1.0*rand()/RAND_MAX) - 1.0; // random number -1 .. +1
- double common_ampl_noise_frac = 1+commAmplNoise*r1;
- double one_phot_noise_frac = onePhotonPhaseNoise*r2;
- double two_phot_noise_frac = twoPhotonPhaseNoise*r3;
- EdL=EdLo * common_ampl_noise_frac * exp(i*one_phot_noise_frac);
- EdR=EdRo * common_ampl_noise_frac * exp(i*one_phot_noise_frac);
- EpL=EpLo * common_ampl_noise_frac * exp(i*one_phot_noise_frac) * exp(i*two_phot_noise_frac);
- EpR=EpRo * common_ampl_noise_frac * exp(i*one_phot_noise_frac) * exp(i*two_phot_noise_frac);
+ // amplitude and phase noise modulation to the E-fields
+ if ( _index_v == 0 ) {
+ double r1 = 2.0*(1.0*rand()/RAND_MAX) - 1.0; // random number -1 .. +1
+ double r2 = 2.0*(1.0*rand()/RAND_MAX) - 1.0; // random number -1 .. +1
+ double r3 = 2.0*(1.0*rand()/RAND_MAX) - 1.0; // random number -1 .. +1
+ double common_ampl_noise_frac = 1+commAmplNoise*r1;
+ double one_phot_noise_frac = onePhotonPhaseNoise*r2;
+ double two_phot_noise_frac = twoPhotonPhaseNoise*r3;
+ EdL=EdLo * common_ampl_noise_frac * exp(i*one_phot_noise_frac);
+ EdR=EdRo * common_ampl_noise_frac * exp(i*one_phot_noise_frac);
+ EpL=EpLo * common_ampl_noise_frac * exp(i*one_phot_noise_frac) * exp(i*two_phot_noise_frac);
+ EpR=EpRo * common_ampl_noise_frac * exp(i*one_phot_noise_frac) * exp(i*two_phot_noise_frac);
+ } else {
+ // Initial E-fields are velocity independent
+ // via xmds magic we are accessing 0th velocity element of E-fields
+ // and assigning it to all velocity components of the E-fields
+ long old_tv_E_field_index_pointer = _tv_E_field_index_pointer;
+ _tv_E_field_index_pointer = old_tv_E_field_index_pointer - _index_v * _tv_E_field_ncomponents;
+ complex EdL_v0 = EdL;
+ complex EdR_v0 = EdR;
+ complex EpL_v0 = EpL;
+ complex EpR_v0 = EpR;
+
+ _tv_E_field_index_pointer = old_tv_E_field_index_pointer;
+
+ EdR = EdR_v0;
+ EdL = EdL_v0;
+ EpR = EpR_v0;
+ EpL = EpL_v0;
+ }
// Temporary pulse in all fields
/*