perturbopy.postproc.utils.spectra_generate_pulse.setup_pump_pulse
- perturbopy.postproc.utils.spectra_generate_pulse.setup_pump_pulse(elec_pump_pulse_path, hole_pump_pulse_path, elec_dyna_run, hole_dyna_run, pump_energy, pump_time_step=1.0, pump_duration_fwhm=20.0, pump_spectral_width_fwhm=0.09, pump_time_window=50.0, pump_factor=0.3, finite_width=True, animate=True, plot_scale=1.0, cnum_check=True, tr_dipoles_sqr=None)
Setup the Gaussian pump pulse excitation for electrons and holes. Write into the pump_pulse.h5 HDF5 file. We use raw k-point and energy arrays as read from the HDF5 files for efficiency. All energies in eV, k points in crystal coordinates.
Pulse duration and energy broadening FWHM are related, typically, pump_spectral_width_fwhm = 1.8 / pump_duration_fwhm. However, here, we leave the possibility to set them independently.
- Parameters:
elec_pump_pulse_path (str) – Path to the HDF5 file for the pump pulse excitation for electrons.
hole_pump_pulse_path (str) – Path to the HDF5 file for the pump pulse excitation for holes.
elec_dyna_run (DynamicsRunCalcMode) – The DynaRun object for electrons from the HDF5 and YAML files. It is expected that the dyanmics was run only for one step, and only dynamics_run_1 group exists in prefix_cdyna.h5 and ZERO electron occupation is setup.
hole_dyna_run (DynamicsRunCalcMode) – The DynaRun object for holes from the HDF5 and YAML files. See elec_dyna_run.
pump_energy (float) – The energy of the pump pulse (eV)
pump_time_step (float, optional) – Time step in fs for the pump pulse generation. Note: the pump_time_step MUST match the one used in the dynamics run in Perturbo!
pump_duration_fwhm (float, optional) – The full width at half maximum of the pump pulse (fs).
pump_spectral_width_fwhm (float, optional) – Energy broadening FWHM of the pump pulse (eV).
pump_time_window (float, optional) – The time window for the pump pulse (fs). During this time window, the pump pulse will be active. The number of the snapshots in the pump_pulse.h5 file will be equal to pump_time_window / pump_time_step.
pump_factor (float, optional) – The amplitude of the pump pulse. The maximum occupation will be pump_factor.
finite_width (bool, optional) – If True, the pulse is finite in time. If False, the pulse is a step function and occs_amplitude will be set as initial occupation.
animate (bool, optional) – If True, animate the pump pulse excitation.
plot_scale (float) – Scale factor for the scatter object sizes for carrier occupations. Default is 1.0.
cnum_check (bool, optional) – If True, create a cnum_check folder with a prefix_cdyna.h5 file with the total occupation summed over time steps. Run dynamics-pp with Perturbo (without dynamics-run) to get the accurate total carrier number in the cnum_check folder (link the epr file there).
tr_dipoles_sqr (np.ndarray, optional) – Transition dipoles squared, valence-to-conduction for each k-point and band. Currently, the k-grid for dipoles must match the one for electrons. Experimental feature.