perturbopy.postproc.utils.spectra_generate_pulse.gaussian_excitation
- perturbopy.postproc.utils.spectra_generate_pulse.gaussian_excitation(pump_file, occs_amplitude, time_grid, time_window, pump_duration, time_step, hole=False, finite_width=True)
The Gaussian pulse excitation for the Perturbo dynamics. Pump pulses for electrons and holes must be dumped into separate HDF5 files. In Perturbo, set pump_pulse = .true. and pump_pulse_fname = … in pert.in.
In Perturbo, step_0 will be initialized with init_boltz_dist parameter, the pump pulse will be applied starting from step_1.
- Parameters:
pump_pulse_file (h5py.File) – The HDF5 file for the pump pulse excitation. Typically, pump_pulse_Epump_…h5.
occs_amplitude (np.ndarray) – Electron or hole occupation amplitude: for each k-point, its _additional_ occupation in time is modeled as Gaussian with the given FWHM and amplitude.
time_window (float) – The time window for the pump pulse (fs). During this time window, the pump pulse will be active.
pump_duration (float) – The full width at half maximum of the pump pulse (fs).
time_step (float) – 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!
hole (bool, optional) – If True, the pump pulse is for holes. Default is False (electrons).
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.
- Returns:
Return additional occupations array in time, if finite_widt is True, else, return None.
- Return type:
array-like or None