------------------------------------------------------------------------------- -- -- -- Experiment Source Code -- -- Delta NMR Experiment & Machine Control Interface -- -- -- -- Copyright (c) 2015 JEOL Ltd -- -- All Rights Reserved -- -- -- ------------------------------------------------------------------------------- -- HELP.eng: double_cp_2d -- Category: solids, ultrafast mas, 2D, heteronuclear correlation and homonuclear correlation. -- By Rongchun Zhang, 2021/06/28 header filename => "SQ_SQ_noe_double_cp_2d"; sample_id => ""; comment => "double_cp_2d"; process = "2d_solid.list"; include "header_solid"; end header; instrument include "instrument_solid"; end instrument; acquisition x_domain => "Proton"; x_offset => 5[ppm]; x_sweep => 100[kHz]; x_points_input => 1024; x_points =? if x_points_input/x_sweep < 50 [ms] then x_points_input else 2; scans => 8; x_prescans => 0; mod_return => 2; y_domain => "Carbon13"; y_offset => 100[ppm]; y_sweep => 250[ppm]; y_points => 32; include "acquisition_solid"; y_acq_time =? y_points / y_sweep; y_resolution =? 1 / y_acq_time; y_dwell =? 1 / y_sweep; end acquisition; pulse collect COMPLEX,OBS COMPLEX,IRR; initial_wait = 10.0[ms]; irr_domain = y_domain , help "decoupled nucleus"; irr_offset = y_offset , help "decoupler offset"; Pulse_Setup =? "#Setup hard pulses#"; obs_width_90 => x90; obs_amp_pulse => 100[%], 0[%]->100[%] : 0.1[%]; irr_width_90 => irr90; irr_amp_pulse => 100[%],0[%]->100[%] : 0.1[%]; CP1_Setup =? "#Setup first CP#"; obs_shape_cp = "RAMP_cp"; contact_time => 2[ms], 0[us]->20[ms] : 10[us], help "contact time"; obs_amp_cp => 30[%], 0[%]->100[%] : 10[m%], help "CP amplitude of irr channel"; obs_amp_grad => 10[%], -100[%]->100[%] : 0.1[%], help "irr CP sweep range (-irr_amp_grad/2->+irr_amp_grad)"; irr_shape_cp = "RAMP_cp"; irr_amp_cp => 30[%], 0[%]->100[%] : 10[m%], help "amplitude of obs channel"; irr_amp_grad => 1[%], -100[%]->100[%] : 0.1[%], help "obs CP sweep range (-obs_amp_grad/2->+obs_amp_grad)"; CP2_Setup =? "#Setup second CP#"; obs_shape_cp2 = "RAMP_cp2"; contact_time2 => 0.5[ms], 0[us]->20[ms] : 10[us], help "contact time"; obs_amp_cp2 => obs_amp_cp, 0[%]->100[%] : 10[m%], help "CP amplitude of irr channel"; obs_amp_grad2 => -obs_amp_grad; irr_shape_cp2 = "RAMP_cp2"; irr_amp_cp2 => irr_amp_cp, 0[%]->100[%] : 10[m%], help "amplitude of obs channel"; irr_amp_grad2 => -irr_amp_grad; OBSdec_Setup =? "#Setup OBS dec#"; obs_noise => "CW", ("CM", "CW", "SPINAL64", "SPINAL64_vp", "swfTPPM", "TPPM", "XiX"), help "decoupling sequence"; obs_amp_dec => 5[%], 0[%]->100[%] : 10[m%], help "amplitude of decoupling"; when obs_noise /= "CW" and obs_noise /= "XIX" do obs_width_nominal90 => x90 * 100[%] / obs_amp_dec, help "modulation pulse width for decoupling"; end when; when obs_noise = "CM" or obs_noise = "SPINAL64_vp" or obs_noise = "swfTPPM" or obs_noise = "TPPM" do obs_phs_tppm => 15[deg], help "decoupling sequence phase modulation"; end when; when obs_noise = "XiX" do obs_width_xix => 50[us], help "XiX modulation pulse width: should be optimized around 1.85*tr"; end when; obs_pwidth = if obs_noise = "CW" then 0[us] else if obs_noise = "XiX" then obs_width_xix else obs_width_nominal90; HORROR_Setup =? "#Setup HORROR#"; tau_rr => 1[ms], 0[us]->100[ms] : 10[us]; obs_amp_rr => 10[%]; MISC_Setup =? "#Setup Miscellaneous#"; z_filter => 1[ms]; MixTime => 10[ms]; t1 = 0[us]; SATURATION = FALSE; when SATURATION do obs_width_sat => x90; obs_amp_sat => 100[%], 0[%]->100[%]:0.01[%], help "amp for pre-saturation pulses"; sat_term => 1[s], help "saturation time"; sat_pulse_interval => 10[ms], help "interval of saturation pulse"; sat_loop =? round(sat_term/(sat_pulse_interval+obs_width_90)), help "loop of saturation pulse"; end when; relaxation_delay => 5[s], help "inter-pulse delay"; repetition_time =? relaxation_delay + x_acq_time + y_acq_time, help "relaxation_delay+x_acq_time"; obs_atn => xatn, help "attenuator of obs"; irr_atn => irratn, help "attenuator of irr"; obs_phs_prep = {0}; obs_phs_cp1 = {90}; obs_phs_dec = {0}; obs_phs_cp2 = {2(90),2(270)}; obs_phs_store = {180}; obs_phs_901 = {{0,180},{90,270}}.ystep(180%2); obs_phs_902 = {0,0,180,180}; obs_phs_903 = {4(0),4(90),4(180),4(270)}; obs_phs_rrx = {0}; obs_phs_rry = {90}; irr_phs_cp1 = {90}; irr_phs_store = {180}; irr_phs_restore = {{0,180},{90,270}}.ystep(180%2); irr_phs_cp2 = {90}; irr_phs_dec = { 0}; irr_phs_befHORROR = {180}; irr_phs_aftHORROR = {0}; obs_phs_acq1 = {0,180,180,0,90,270,270,90,180,0,0,180,270,90,90,270}.ystep(180%2); obs_phs_acq2 = { 90,270,270, 90}.ystep(180%2); include "pulse_solid"; module_config = "solid_sample continuous_fid"; begin initial_wait; when SATURATION do loop sat_loop times sat_pulse_interval; obs_width_sat,(obs.gate, obs.phs.0, obs.amp.obs_amp_sat, obs.atn.obs_atn); end loop; end when; relaxation_delay; obs_width_90, (obs.gate, obs.phs.obs_phs_prep, obs.amp.obs_amp_pulse, obs.atn.obs_atn); contact_time, (obs.GATE, obs.PHS.obs_phs_cp1, obs.shape.{obs_shape_cp, "obs"}, obs.ATN.obs_atn, irr.GATE, irr.PHS.irr_phs_cp1, irr.SHAPE.{irr_shape_cp, "irr"}, irr.ATN.irr_atn); align center irr_width_90, (irr.gate, irr.phs.irr_phs_store, irr.amp.irr_amp_pulse, irr.atn.irr_atn); obs_width_90, (obs.gate, obs.phs.obs_phs_store, obs.amp.obs_amp_pulse, obs.atn.obs_atn); end align; z_filter; obs_width_90, (obs.gate, obs.phs.obs_phs_901, obs.amp.obs_amp_pulse, obs.atn.obs_atn); t1 ystep 1/y_sweep; obs_width_90, (obs.gate, obs.phs.obs_phs_902, obs.amp.obs_amp_pulse, obs.atn.obs_atn); MixTime; obs_width_90, (obs.gate, obs.phs.obs_phs_903, obs.amp.obs_amp_pulse, obs.atn.obs_atn); acq(dead_time, delay, obs_phs_acq1 ); irr_width_90, (irr.gate, irr.phs.irr_phs_restore, irr.amp.irr_amp_pulse, irr.atn.irr_atn); t1 ystep 1/y_sweep, (obs.GATE, obs.PHS.obs_phs_dec, obs.AMP.obs_amp_dec, obs.ATN.obs_atn, obs.noise.obs_noise); irr_width_90, (irr.gate, irr.phs.irr_phs_befHORROR, irr.amp.irr_amp_pulse, irr.atn.irr_atn); tau_rr, (OBS.GATE, OBS.PHS.obs_phs_rrx, OBS.AMP.obs_amp_rr, OBS.ATN.obs_atn); tau_rr, (OBS.GATE, OBS.PHS.obs_phs_rry, OBS.AMP.obs_amp_rr, OBS.ATN.obs_atn); tau_rr, (OBS.GATE, OBS.PHS.obs_phs_rrx, OBS.AMP.obs_amp_rr, OBS.ATN.obs_atn); tau_rr, (OBS.GATE, OBS.PHS.obs_phs_rry, OBS.AMP.obs_amp_rr, OBS.ATN.obs_atn); irr_width_90, (irr.gate, irr.phs.irr_phs_aftHORROR, irr.amp.irr_amp_pulse, irr.atn.irr_atn); contact_time2, (obs.GATE, obs.PHS.obs_phs_cp2, obs.shape.{obs_shape_cp2, "obs"}, obs.ATN.obs_atn, irr.GATE, irr.PHS.irr_phs_cp2, irr.SHAPE.{irr_shape_cp2, "irr"}, irr.ATN.irr_atn); acq( dead_time, delay, obs_phs_acq2 ); end pulse;