pub struct HermiteGaussian {
pub duration: f64,
pub fwhm: f64,
pub t0: f64,
pub anh: f64,
pub alpha: f64,
pub sample_rate: f64,
pub second_order_hrm_coeff: f64,
pub scale: f64,
pub phase: f64,
pub detuning: f64,
}
Expand description
Creates a Hermite Gaussian waveform.
This extends the basic DRAG pulse by adding an additional imaginary term to the pulse envelope consisting of a Gaussian pulse modified by the second order Hermite polynomial.
Refer to “Effects of arbitrary laser or NMR pulse shapes on population inversion and coherence” Warren S. Warren. 81, (1984); doi: 10.1063/1.447644 for details.
Fields§
§duration: f64
Full duration of the pulse
fwhm: f64
Full width half maximum of the pulse
t0: f64
Center/offset for pulse centroid
anh: f64
Qubit anharmonicity - sets rate of evolution for the imaginary term
alpha: f64
DRAG parameter - controls strength of the imaginary term
sample_rate: f64
Generate samples at this rate
second_order_hrm_coeff: f64
Coefficient of the second order Hermite polynomial term.
scale: f64
Scale to apply to waveform envelope
phase: f64
Phase shift for entire waveform
detuning: f64
Explicit detuning to bake into iq values
Trait Implementations§
Source§impl Clone for HermiteGaussian
impl Clone for HermiteGaussian
Source§fn clone(&self) -> HermiteGaussian
fn clone(&self) -> HermiteGaussian
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for HermiteGaussian
impl Debug for HermiteGaussian
Source§impl<'de> Deserialize<'de> for HermiteGaussian
impl<'de> Deserialize<'de> for HermiteGaussian
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for HermiteGaussian
impl PartialEq for HermiteGaussian
Source§impl Serialize for HermiteGaussian
impl Serialize for HermiteGaussian
Source§impl WaveformTemplate for HermiteGaussian
impl WaveformTemplate for HermiteGaussian
fn into_iq_values(self) -> Vec<Complex64>
impl Copy for HermiteGaussian
impl StructuralPartialEq for HermiteGaussian
Auto Trait Implementations§
impl Freeze for HermiteGaussian
impl RefUnwindSafe for HermiteGaussian
impl Send for HermiteGaussian
impl Sync for HermiteGaussian
impl Unpin for HermiteGaussian
impl UnwindSafe for HermiteGaussian
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.