rotsim2d.dressedleaf#

Associate polarizations, angular momentum factors and pathways amplitudes with pathways. The time- and frequency-dependent signals are calculated in rotsim2d.propagate.

Pathway represents a double-sided Feynmann pathway for third-order rovibrational excitation, without associating it to any specific molecule. DressedPathway specializes the object to specific vibrational mode at a given temperature. The main quantity, calculable with DressedPathway.amplitude(), is the pathway amplitude given by:

\[A(\widetilde{\theta}, \widetilde{J}) = (-1)^\kappa \frac{i}{\hbar^3} \langle O_{ijkl}\rangle = (-1)^\kappa \frac{i}{\hbar^3} \frac{N_{\eta_i J_i}}{N} \langle T^{(0)}_0(\eta_iJ_i)^\dagger\rangle R^{(0)}_0(\widetilde{\theta}, \widetilde{J}) \langle \nu_i J_i\|T^{(0)}(\tilde{\mu})\|\nu_i J_i\rangle,\]

where \(\widetilde{\theta}\) and \(\widetilde{J}\) are the sequences of polarization angles and J values for the pathway. \(N_{\eta_i J_i}\) includes all relevant degeneracy factors (nuclear spin, rovibrational symmetry) and \(\langle T^{(0)}_0(\eta_iJ_i)^\dagger\rangle=(2J_i+1)^{-1/2}\).

The macroscopic polarization is related to the pathway amplitude by:

\[\vec{\epsilon}_4\cdot P^{(n)} = \frac{1}{8} N \mathcal{E}_1 \mathcal{E}_2 \mathcal{E}_3 A(\widetilde{\theta}, \widetilde{J}) \mathcal{I}(\widetilde{\omega}\text{ or } \widetilde{t}),\]

where \(N\) is the number density and \(\mathcal{I}(\widetilde{\omega}\text{ or } \widetilde{t})\) determines the n-dimensional frequency- or time-domain response. The absorption coefficient for the probe (in the Lambert-Beer law sense) is then given by:

\[\alpha_{\mathrm{probe}} = \frac{1}{4}N \frac{k^{\mathrm{probe}}_0}{\epsilon_0} \mathcal{E}_1 \mathcal{E}_2 A(\widetilde{\theta}, \widetilde{J}) \mathcal{I}(\widetilde{\omega}\text{ or } \widetilde{t}).\]

Pathway#

Pathway(leaf)

Collect information on a pathway based on KetBra tree leaf without specializing it to any specific vibrational mode of a molecule.

Attributes#

Pathway.leaf

The leaf used to construct this pathway.

Pathway.colors

Number of different optical frequencies requried to produce this pathway.

Pathway.experimental_label

ground-state hole-burning, excited-states absorption, etc.

Pathway.geo_label

Shorthand notation for js.

Pathway.peak_label

Two-letter identifier for the 2D peak.

Pathway.trans_label

Short hand notation for series of transitions in the pathway.

Pathway.trans_label_deg

Ambiguous version of trans_label.

Pathway.coherences

Coherences created by light-matter interactions.

Pathway.transitions

Time-ordered transitions between states for the pathway.

Pathway.js

Arguments for the G-factor.

Pathway.light_inds

Ordering of polarization vectors in four-fold dipole-operator.

Pathway.const

\((-1)^\kappa\left(\frac{i}{2\hbar}\right)^n\), where n is the order of interaction (usually 3) and \(\kappa\) is the sign factor due to multiple interactions on either ket- or bra-side of the density matrix.

Pathway.tw_coherence

Whether the molecule is in coherent state after second interaction.

Pathway.peak

Pair of strings representing coherences created by first and third interaction (2D peak label).

Pathway.abstract_peak

Same as peak but using P-, Q-, R-branch notation instead of absolute J numbers.

Pathway.fields

List of Pathway attributes.

Methods#

Pathway.from_kb_tree(kb_tree)

Make a list of Pathway's from KetBra tree.

Pathway.from_kb_list(kb_list)

Make a list of Pathway's from KetBra list.

Pathway.T00s(angles)

Polarization tensor components \(T^{(0)}_0(\epsilon_i^{\ast}, \epsilon_j, \epsilon_k^{\ast}, \epsilon_l; k)\) for k=0,1,2

Pathway.gfactors()

Geometric factors for k=0,1,2.

Pathway.geometric_factor([relative, angles])

Geometric R-factor for pathway intensity for isotropic initial density matrix.

Pathway.custom_str([fields])

String representation including only attributes in fields.

Pathway.print_diagram([abstract, print])

Pretty print double-sided Feynmann diagram.

Pathway.pprint([abstract, angles, print])

Pretty print this pathway.

DressedPathway#

DressedPathway(leaf, vib_mode, T)

Excitation pathway specialized to a vibrational mode.

Attributes#

DressedPathway.vib_mode

Vibrational mode associated with this pathway.

DressedPathway.T

Temperature in Kelvin.

DressedPathway.const

The const factor of Pathway multiplied by the fractional population of the initial state of the pathway in thermal equilibrium, molspecutils.molecule.VibrationalMode.equilibrium_pop(), and by the four-fold reduced matrix element, \(\langle \nu_i J_i\|T^{(0)}(\tilde{\mu})\|\nu_i J_i\rangle\):

Methods#

DressedPathway.from_kb_tree(kb_tree, vib_mode, T)

Make a list of DressedPathway's from KetBra tree.

DressedPathway.from_kb_list(kb_list, vib_mode, T)

Make a list of DressedPathway's from KetBra list.

DressedPathway.from_params_dict(params)

Make a list of DressedPathway's from dict of parameters.

DressedPathway.gamma(i)

Pressure-broadening coefficient of i coherence.

DressedPathway.nu(i)

Frequency of i-th coherence.

DressedPathway.amplitude([tw, angles])

Amplitude of the pathway, given by the product of isotropic coefficient of the initial density matrix, \(\langle T^{(0)}_0(\eta_i J_i)^\dagger\rangle=(2J_i+1)^{-1/2}\), const and Pathway.geometric_factor().

DressedPathway.pump_fraction(E12)

Fraction of initial population excited by pump pulses.

DressedPathway.pprint([abstract, angles, print])

Pretty print this pathway.

Peak2D#

Peak2D(pump_wl, probe_wl, peak, amplitude, ...)

Represent 2D IR resonance produced by multiple pathways.

Attributes#

Peak2D.pump_wl

Pump wavenumber.

Peak2D.probe_wl

Probe wavenumber.

Peak2D.peak

Peak identifier.

Peak2D.amplitude

Sum of pathway amplitudes producing the peak.

Peak2D.intensity

Pathway intensity.

Peak2D.max_intensity

Pathway intensity at the peak of the line, assuming Lorentzian profile.

Peak2D.dp_list

List of pathways backing this 2D resonance.

Peak2D.params

p, pressure in atm; tw, waiting time in s; angles, polarization.

Methods#

Peak2D.max_abs_coeff(E12, conc)

Return max abs.

Peak2D.from_dp_list(dp_list[, tw, angles, p])

Make Peak2D from a list of DressedPathway associated with the same 2D resonance.

Peak2DList#

Peak2DList([iterable])

List of 2D peaks with easy access to pump, probe frequencies, peak intensities and peak identifiers.

Attributes#

Peak2DList.pumps

List of pump frequencies.

Peak2DList.probes

List of probe frequencies.

Peak2DList.peaks

Peak strings.

Peak2DList.amplitudes

Peak amplitude--sum of DressedPathway.amplitude() over all pathways contributing to a 2D peak.

Peak2DList.intensities

Peak pathway intensities.

Peak2DList.max_intensities

Max peak intensity assuming Lorentzian profile.

Methods#

Peak2DList.from_dp_list(dpl[, tw, angles, p])

Peak2DList.from_file(path)

Read peak list from HDF5 file.

Peak2DList.from_params_dict(params)

Calculate list of peaks based on toml input data.

Peak2DList.to_file(path[, metadata])

Save peak list to HDF5 file.

Peak2DList.get_by_peak(peak)

Return peak with Peak2D.peak equal to peak.

Peak2DList.sort_by_amplitudes()

Sort peaks by amplitude.

Top-level functions#

Labels#

abstract_format(dnu, dj)

Abstract ket (or bra) label, e.g: 1P, 0Q.

abstract_state_label(state, ref_state)

Abstract label for state relative to ref_state, e.g: 1P, 0Q.

abstract_pair_label(pair, ref_state)

Abstract label for pair relative to ref_state, e.g: |1P><0|.

abstract_line_label(pair[, vib])

Assign branch label, e.g: P, 2P, Q, to pair representing a transition.

coherence_conj(coh_string)

Conjugate coherence string, |ket><bra|->`|bra><ket|`.

peak_conj(peak)

Conjugate last coherence string in peak identifier.

Pathways#

split_by_js(kbl)

Collect pathways with the same js.

split_by_peaks(kbl[, abstract, ...])

Collect pathways with the same 2D resonance.

pprint_dllist(dllist[, abstract, angles, print])

Pretty print a list of Pathway or DressedPathway.

print_dl_dict(dldict[, fields])

Pretty print a dict of pathways.

print_dl_tuple_dict(dldict[, fields])

Pretty print a dict of (pathway, float) tuples.

Peaks#

equiv_peaks(pw, pl)

Return peaks from pl based on pathways equivalent to pw.

Miscellaneous#

perm_pols(pols)

Rearrangement of polarizations allowed by symmetry.

perm_js(js)

Rearrangement of J values allowed by symmetry.

undegenerate_js(ljs)

Remove degenerate tuples of Js.