PumpProbeSpectrum#
Pump-probe spectra can be obtained as a projection of a 2D spectrum onto the probe frequency axis. The PumpProbeSpectrum and PumpProbeSpectrumContainer classes represent these projected spectra.
- class quantarhei.spectroscopy.pumpprobe.PumpProbeSpectrum[source]#
Bases:
DFunctionClass representing a pump-probe spectrum.
A one-dimensional spectrum obtained at a fixed waiting time
t2from a pump-probe experiment. Data and axis are set viaset_dataandset_axisafter construction.- get_PumpProbeSpectrum() PumpProbeSpectrum[source]#
Returns self
This method is here to override the one inherented from TwoDSpectrum
- class quantarhei.spectroscopy.pumpprobe.PumpProbeSpectrumContainer(t2axis: Any = None)[source]#
Bases:
TwoDSpectrumContainerContainer for a set of pump-probe spectra indexed by waiting time.
- Parameters:
t2axis (TimeAxis or None, optional) – Waiting-time axis shared by all stored spectra. Default is
None.
- set_spectrum(spec: Any, tag: Any = None) None[source]#
Stores spectrum with a tag (time, index, etc.)
Stores the spectrum according to present indexing scheme
- Parameters:
spect (TwoDSpectrum) – Object holding the spectrum; when not tag is specified for a spectrum which as its t2 time set, the tag is set to t2 time.
tag ({int, string, ValuesAxis, TimeAxis, FrequencyAxis}) – Tag which will be used for retrieval of the spectrum from the container.
- plot2D(axis: Any = None, units: str = 'nm', zero_centered: bool = True, lines: Any = None) None[source]#
- make_movie(filename: str, window: Any = None, stype: Any = None, spart: Any = None, cmap: Any = None, Npos_contours: int = 10, vmax: Any = None, vmin_ratio: float = 0.5, xlabel: Any = None, ylabel: Any = None, axis_label_font: Any = None, start: Any = None, end: Any = None, frate: int = 20, dpi: int = 100, show_states: Any = None, show_states_func: Any = None, label: Any = None, label_func: Any = None, text_loc: Any = None, progressbar: bool = False, use_t2: bool = False, title: str = '', comment: str = '', axis: Any = None, vmin: Any = None, **kwargs: Any) None[source]#
Creates a movie out of the spectra in the container
- Parameters:
Npos_contours (int) – Nomber of positive value contours in the plot
- class quantarhei.spectroscopy.pumpprobe.PumpProbeSpectrumCalculator(t2axis: Any, t3axis: Any, system: Any = None, dynamics: str = 'secular', relaxation_tensor: Any = None, rate_matrix: Any = None, effective_hamiltonian: Any = None, separate_relax_pwy: bool = True, population_propagator: Any = None, density_matrix_propagator: Any = None, density_matrix_trajectory: Any = None, population_time_axis: Any = None, include_nonsecular_remainder: bool = True, include_remainder: bool = True, dipole_normalization_tol: float = 1e-12)[source]#
Bases:
objectCalculator for pump-probe spectra derived from 2D response pathways.
- Parameters:
t2axis (TimeAxis) – Waiting-time axis over which spectra are calculated.
t3axis (TimeAxis) – Detection-time axis used to build the frequency axis.
system (Molecule or Aggregate, optional) – Quantum system for which spectra are calculated.
dynamics (str, optional) – Dynamics type, e.g.
"secular". Default is"secular".relaxation_tensor (optional) – Relaxation tensor to include population relaxation.
rate_matrix (optional) – Rate matrix alternative to a full relaxation tensor.
effective_hamiltonian (optional) – Effective Hamiltonian used in the relaxation basis.
separate_relax_pwy (bool, optional) – If
True, pathways with relaxation steps are treated separately. Default isTrue.
- property t2axis: Any#
- property t3axis: Any#
- property system: Any#
- bootstrap(rwa: float = 0.0, pathways: Any = None, lab: Any = None, verbose: bool = False, adiabatic: Any = None) None[source]#
Sets up the environment for pump-probe calculation
- set_density_matrix_trajectory(density_matrix_trajectory: Any, timeaxis: Any = None) None[source]#
Set an externally calculated density-matrix trajectory.
- set_population_propagator(population_propagator: Any, timeaxis: Any = None) None[source]#
Set an externally calculated one-exciton population propagator.
- set_density_matrix_propagator(density_matrix_propagator: Any, timeaxis: Any = None) None[source]#
Set an externally calculated one-exciton density-matrix propagator.
- set_dynamics(density_matrix_trajectory: Any = None, population_propagator: Any = None, density_matrix_propagator: Any = None, timeaxis: Any = None) None[source]#
Set exactly one external dynamics object for response-backend PP.
- calculate_all_system_approx(sys: Any, rdmt: Any, lab: Any, show_progress: bool = False, approx: Any = None, spec: Any = None, gsb_mode: str = 'hole', orientational_averaging: str = 'legacy') Any[source]#
Calculates all 2D spectra for a system and reduced density matrix evolution. The approach assumes no diiference between pathways with jumps and without the jumps.
- calculate_all_system_approx_response_backend(sys: Any, rdmt: Any = None, lab: Any = None, show_progress: bool = False, spec: Any = None, population_propagator: Any = None, density_matrix_propagator: Any = None, population_time_axis: Any = None, include_nonsecular_remainder: bool = True, include_remainder: bool = True, dipole_normalization_tol: float = 1e-12) Any[source]#
Calculate pump-probe spectra through the modern response backend.
This method is a pump-probe-like
t1 = 0calculation. The supplied dynamics can be a reduced-density-matrix trajectory, a one-exciton population propagator, or a one-exciton density-matrix propagator.
- calculate(system: Any = None, lab: Any = None, density_matrix_trajectory: Any = None, population_propagator: Any = None, density_matrix_propagator: Any = None, population_time_axis: Any = None, method: str = 'response', show_progress: bool = False, spec: Any = None, include_nonsecular_remainder: bool | None = None, include_remainder: bool | None = None, dipole_normalization_tol: float | None = None, approx: Any = None, gsb_mode: str = 'hole', orientational_averaging: str = 'legacy') Any[source]#
Calculate pump-probe spectra with the selected backend.
- Parameters:
system (Aggregate, optional) – System to calculate. If omitted, the calculator’s stored system is used.
lab (LabSetup, optional) – Laboratory setup. If omitted, the setup supplied to
bootstrapis used.density_matrix_trajectory – Optional external dynamics. If omitted, dynamics previously set by
set_dynamicsor one of the specialized setters are used.population_propagator – Optional external dynamics. If omitted, dynamics previously set by
set_dynamicsor one of the specialized setters are used.density_matrix_propagator – Optional external dynamics. If omitted, dynamics previously set by
set_dynamicsor one of the specialized setters are used.method ({"response", "legacy"}) –
"response"uses the modern nonlinear-response backend."legacy"uses the old RDM pump-probe implementation.
- calculate_all_system(sys: Any, eUt: Any, lab: Any, show_progress: bool = False) Any[source]#
Calculates all 2D spectra for a system and evolution superoperator
- calculate_one_system(t2: float, sys: Any, eUt: Any, lab: Any, pways: Any = None) Any[source]#
Returns pump-probe spectrum at t2 for a system and evolution superoperator
- calculate_pathways(pathways: Any, tau: float) ndarray[source]#
Calculate the shape of a Liouville pathway
- quantarhei.spectroscopy.pumpprobe.calculate_from_2D(twod: Any) PumpProbeSpectrum[source]#
Calculates pump-probe spectrum from 2D spectrum
Calculates pump-probe spectrum from 2D spectrum using projection theorem
- Parameters:
twod (TwoDSpectrum) – 2D spectrum from which pump-probe will be calculated
- class quantarhei.spectroscopy.pumpprobe.MockPumpProbeSpectrumCalculator(t1axis: Any, t2axis: Any, t3axis: Any, temp: Any = None)[source]#
Bases:
MockTwoDResponseCalculatorEffective line-shape pump-probe spectrum calculator.
Uses Gaussian or Lorentzian lineshapes evaluated directly in the frequency domain to produce pump-probe spectra without computing the full time-domain response.
- Parameters:
t1axis (TimeAxis) – Coherence-time axis (used by parent class; not directly needed for pump-probe).
t2axis (TimeAxis) – Waiting-time axis over which spectra are calculated.
t3axis (TimeAxis) – Detection-time axis used to build the frequency axis.
temp (float or None, optional) – Temperature in Kelvin. Default is
None(temperature-independent lineshapes).
- calculate_all_system(sys: Any, eUt: Any, lab: Any, selection: Any = None, show_progress: bool = False, dtol: float = 1e-12, H: Any = None, **kwargs: Any) Any[source]#
Calculate all pump-probe spectra for all t2 times in the t2axis.
- Parameters:
sys (Aggregate) – Molecular aggregate system.
eUt (evolution superoperator) – Evolution superoperator evaluated at each t2 time.
lab (LabSetup) – Laboratory setup with polarization information.
selection (optional) – Pathway selection; not currently used.
show_progress (bool, optional) – If
True, print progress messages. Default isFalse.dtol (float, optional) – Tolerance for dipole moment contributions. Default is
1e-12.H (optional) – Hamiltonian; not currently used.
**kwargs – Additional keyword arguments.
- Returns:
PumpProbeSpectrumContainer – Container with all calculated pump-probe spectra.
- calculate_one_system(t2: float, sys: Any, eUt: Any, lab: Any, selection: Any = None, pways: Any = None, dtol: float = 1e-12, H: Any = None, **kwargs: Any) Any[source]#
Calculate a single pump-probe spectrum at the specified t2 time.
- Parameters:
t2 (float) – Waiting time at which to calculate the spectrum.
sys (Aggregate) – Molecular aggregate system.
eUt (evolution superoperator) – Evolution superoperator.
lab (LabSetup) – Laboratory setup with polarization information.
selection (optional) – Pathway selection; not currently used.
pways (optional) – Pathway storage; not currently used.
dtol (float, optional) – Tolerance for dipole moment contributions. Default is
1e-12.H (optional) – Hamiltonian; not currently used.
**kwargs – Additional keyword arguments.
- Returns:
PumpProbeSpectrum – Calculated pump-probe spectrum at t2.
- quantarhei.spectroscopy.pumpprobe.printProgressBar(iteration: int, total: int, prefix: str = '', suffix: str = '', decimals: int = 1, length: int = 100, fill: str = '█') None[source]#
Call n a loop to create terminal progress bar
- Parameters:
iteration (int (Required)) – Current iteration
total (int (Required)) – Total interactions
prefix (string (optional)) – Prefix string
suffix (string (optional)) – Suffix string
decimal (int (optional)) – positive number of decimals in percent complete
length (int (optional)) – Character length of bar
fill (str (optional)) – Fill bar character