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_fwhm=20.0, pump_energy_broadening=0.04, pump_time_window=50.0, finite_width=True, animate=True)

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.

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_fwhm (float, optional) – The full width at half maximum of the pump pulse (fs).

  • pump_energy_broadening (float, optional) – Energy broadening 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.

  • 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.