core.gradients

Submodules

core.gradients.chirpscan_z_error_gradients module

core.gradients.chirpscan_z_error_gradients.Z_gradient_shg(pulse_t_dispersed, difference_signal_t, sk, rn, n)[source]
core.gradients.chirpscan_z_error_gradients.Z_gradient_thg(pulse_t_dispersed, difference_signal_t, sk, rn, n)[source]
core.gradients.chirpscan_z_error_gradients.Z_gradient_pg(pulse_t_dispersed, difference_signal_t, sk, rn, n)[source]
core.gradients.chirpscan_z_error_gradients.Z_gradient_nhg(pulse_t_dispersed, difference_signal_t, sk, rn, n)[source]
core.gradients.chirpscan_z_error_gradients.calculate_Z_gradient(pulse_t_dispersed, signal_t, signal_t_new, phase_matrix, measurement_info)[source]

Calculates the analytical Z-error gradient of a chirp-scan method and a given nonlinear method. The gradient is calculated in the frequency domain.

Parameters:
  • pulse_t_dispersed (jnp.array) – the current guess after phase_matrix was applied

  • signal_t (jnp.array) – the signal field of the current guess

  • signal_t_new (jnp.array) – the signal field after projection onto the measured intensity

  • phase_matrix (jnp.array) – the phase matrix which was applied

  • measurement_info (Pytree) – contains measurement data and parameters

Returns:

jnp.array, the Z-error gradient

core.gradients.frog_z_error_gradients module

core.gradients.frog_z_error_gradients.Z_gradient_shg(deltaS, pulse_t, pulse_t_shifted, gate_shifted, exp_arr, sk, rn, n)[source]
core.gradients.frog_z_error_gradients.Z_gradient_thg(deltaS, pulse_t, pulse_t_shifted, gate_shifted, exp_arr, sk, rn, n)[source]
core.gradients.frog_z_error_gradients.Z_gradient_pg(deltaS, pulse_t, pulse_t_shifted, gate_shifted, exp_arr, sk, rn, n)[source]
core.gradients.frog_z_error_gradients.Z_gradient_sd(deltaS, pulse_t, pulse_t_shifted, gate_shifted, exp_arr, sk, rn, n)[source]
core.gradients.frog_z_error_gradients.Z_gradient_nhg(deltaS, pulse_t, pulse_t_shifted, gate_shifted, exp_arr, sk, rn, n)[source]
core.gradients.frog_z_error_gradients.Z_gradient_cross_correlation_pulse(deltaS, pulse_t, pulse_t_shifted, gate_shifted, exp_arr, sk, rn, n)[source]
core.gradients.frog_z_error_gradients.Z_gradient_shg_cross_correlation_gate(deltaS, pulse_t, pulse_t_shifted, gate_shifted, exp_arr, sk, rn, n)[source]
core.gradients.frog_z_error_gradients.Z_gradient_thg_cross_correlation_gate(deltaS, pulse_t, pulse_t_shifted, gate_shifted, exp_arr, sk, rn, n)[source]
core.gradients.frog_z_error_gradients.Z_gradient_pg_cross_correlation_gate(deltaS, pulse_t, pulse_t_shifted, gate_shifted, exp_arr, sk, rn, n)[source]
core.gradients.frog_z_error_gradients.Z_gradient_sd_cross_correlation_gate(deltaS, pulse_t, pulse_t_shifted, gate_shifted, exp_arr, sk, rn, n)[source]
core.gradients.frog_z_error_gradients.Z_gradient_nhg_cross_correlation_gate(deltaS, pulse_t, pulse_t_shifted, gate_shifted, exp_arr, sk, rn, n)[source]
core.gradients.frog_z_error_gradients.Z_gradient_shg_interferometric(deltaS, pulse_t, pulse_t_shifted, gate_shifted, exp_arr, sk, rn, n)[source]
core.gradients.frog_z_error_gradients.Z_gradient_thg_interferometric(deltaS, pulse_t, pulse_t_shifted, gate_shifted, exp_arr, sk, rn, n)[source]
core.gradients.frog_z_error_gradients.Z_gradient_pg_interferometric(deltaS, pulse_t, pulse_t_shifted, gate_shifted, exp_arr, sk, rn, n)[source]
core.gradients.frog_z_error_gradients.Z_gradient_nhg_interferometric(deltaS, pulse_t, pulse_t_shifted, gate_shifted, exp_arr, sk, rn, n)[source]
core.gradients.frog_z_error_gradients.Z_gradient_shg_interferometric_cross_correlation_pulse(deltaS, pulse_t, pulse_t_shifted, gate_shifted, exp_arr, sk, rn, n)[source]
core.gradients.frog_z_error_gradients.Z_gradient_thg_interferometric_cross_correlation_pulse(deltaS, pulse_t, pulse_t_shifted, gate_shifted, exp_arr, sk, rn, n)[source]
core.gradients.frog_z_error_gradients.Z_gradient_pg_interferometric_cross_correlation_pulse(deltaS, pulse_t, pulse_t_shifted, gate_shifted, exp_arr, sk, rn, n)[source]
core.gradients.frog_z_error_gradients.Z_gradient_nhg_interferometric_cross_correlation_pulse(deltaS, pulse_t, pulse_t_shifted, gate_shifted, exp_arr, sk, rn, n)[source]
core.gradients.frog_z_error_gradients.Z_gradient_shg_interferometric_cross_correlation_gate(deltaS, pulse_t, pulse_t_shifted, gate_shifted, exp_arr, sk, rn, n)[source]
core.gradients.frog_z_error_gradients.Z_gradient_thg_interferometric_cross_correlation_gate(deltaS, pulse_t, pulse_t_shifted, gate_shifted, exp_arr, sk, rn, n)[source]
core.gradients.frog_z_error_gradients.Z_gradient_pg_interferometric_cross_correlation_gate(deltaS, pulse_t, pulse_t_shifted, gate_shifted, exp_arr, sk, rn, n)[source]
core.gradients.frog_z_error_gradients.Z_gradient_nhg_interferometric_cross_correlation_gate(deltaS, pulse_t, pulse_t_shifted, gate_shifted, exp_arr, sk, rn, n)[source]
core.gradients.frog_z_error_gradients.calculate_Z_gradient_pulse(signal_t, signal_t_new, pulse_t, pulse_t_shifted, gate_shifted, tau_arr, measurement_info, is_tdp)[source]
core.gradients.frog_z_error_gradients.calculate_Z_gradient_gate(signal_t, signal_t_new, pulse_t, pulse_t_shifted, gate_shifted, tau_arr, measurement_info, is_tdp)[source]
core.gradients.frog_z_error_gradients.calculate_Z_gradient(signal_t, signal_t_new, pulse_t, pulse_t_shifted, gate_shifted, tau_arr, measurement_info, pulse_or_gate, is_tdp=False)[source]

Calculates the Z-error gradient with respect to the pulse or the gate-pulse for a given FROG measurement. The gradient is calculated in the frequency domain.

Parameters:
  • signal_t (jnp.array) – the current signal field

  • signal_t_new (jnp.array) – the current signal field projected onto the measured intensity

  • pulse_t (jnp.array) – the current guess

  • pulse_t_shifted (jnp.array) – the current guess translated on the time axis

  • gate_shifted (jnp.array) – the current gate translated on the time axis

  • tau_arr (jnp.array) – the delays

  • measurement_info (Pytree) – contains measurement data and parameters

  • pulse_or_gate (str) – whether the gradient is calculated with respect to the pulse or the gate-pulse

Returns:

jnp.array, the Z-error gradient

core.gradients.streaking_z_error_gradients module

core.gradients.streaking_z_error_gradients.Z_gradient_EUV_pulse(signal_t, signal_t_new, tau_arr, measurement_info)[source]
core.gradients.streaking_z_error_gradients.Z_gradient_vectorpotential(signal_t, signal_t_new, tau_arr, measurement_info)[source]

Grad contains product-rule. Thus two terms are calculcated and then added up. First the part where A appears in the shift of the DTME, then the part where A appears in the volkov phase.

core.gradients.streaking_z_error_gradients.Z_gradient_DTME(signal_t, signal_t_new, tau_arr, measurement_info)[source]
core.gradients.streaking_z_error_gradients.calculate_Z_gradient(signal_t, signal_t_new, tau_arr, measurement_info, pulse_or_gate)[source]

Calculates the Z-error gradient with respect to the pulse, gate-pulse or the DTME for a given Streaking measurement. The gradient is calculated in the frequency domain.

Parameters:
  • signal_t (jnp.array) – the current signal field

  • signal_t_new (jnp.array) – the current signal field projected onto the measured intensity

  • tau_arr (jnp.array) – the delays

  • measurement_info (Pytree) – contains measurement data and parameters

  • pulse_or_gate (str) – whether the gradient is calculated with respect to the pulse or the gate-pulse

Returns:

jnp.array, the Z-error gradient

core.gradients.tdp_z_error_gradients module

core.gradients.tdp_z_error_gradients.calculate_Z_gradient(signal_t, signal_t_new, pulse_t, pulse_t_shifted, gate_shifted, tau_arr, measurement_info, pulse_or_gate, is_tdp=True)[source]

Calculates the Z-error gradient with respect to the pulse or the gate-pulse for a given Time-Domain-Ptychography measurement. The gradient is calculated in the frequency domain.

Parameters:
  • signal_t (jnp.array) – the current signal field

  • signal_t_new (jnp.array) – the current signal field projected onto the measured intensity

  • pulse_t (jnp.array) – the current guess

  • pulse_t_shifted (jnp.array) – the current guess translated on the time axis

  • gate_shifted (jnp.array) – the current gate translated on the time axis

  • tau_arr (jnp.array) – the delays

  • measurement_info (Pytree) – contains measurement data and parameters

  • pulse_or_gate (str) – whether the gradient is calculated with respect to the pulse or the gate-pulse

Returns:

jnp.array, the Z-error gradient

core.gradients.twodsi_z_error_gradients module

core.gradients.twodsi_z_error_gradients.Z_gradient_shg_pulse(deltaS, pulse_t, gate_pulses, gate, exp_arr, sk, rn, n)[source]
core.gradients.twodsi_z_error_gradients.Z_gradient_thg_pulse(deltaS, pulse_t, gate_pulses, gate, exp_arr, sk, rn, n)[source]
core.gradients.twodsi_z_error_gradients.Z_gradient_pg_pulse(deltaS, pulse_t, gate_pulses, gate, exp_arr, sk, rn, n)[source]
core.gradients.twodsi_z_error_gradients.Z_gradient_sd_pulse(deltaS, pulse_t, gate_pulses, gate, exp_arr, sk, rn, n)[source]
core.gradients.twodsi_z_error_gradients.Z_gradient_nhg_pulse(deltaS, pulse_t, gate_pulses, gate, exp_arr, sk, rn, n)[source]
core.gradients.twodsi_z_error_gradients.Z_gradient_cross_correlation_pulse(deltaS, pulse_t, gate_pulses, gate, exp_arr, sk, rn, n)[source]
core.gradients.twodsi_z_error_gradients.Z_gradient_shg_cross_correlation_gate(deltaS, pulse_t, gate_pulses, gate, exp_arr, sk, rn, n)[source]
core.gradients.twodsi_z_error_gradients.Z_gradient_thg_cross_correlation_gate(deltaS, pulse_t, gate_pulses, gate, exp_arr, sk, rn, n)[source]
core.gradients.twodsi_z_error_gradients.Z_gradient_pg_cross_correlation_gate(deltaS, pulse_t, gate_pulses, gate, exp_arr, sk, rn, n)[source]
core.gradients.twodsi_z_error_gradients.Z_gradient_sd_cross_correlation_gate(deltaS, pulse_t, gate_pulses, gate, exp_arr, sk, rn, n)[source]
core.gradients.twodsi_z_error_gradients.Z_gradient_nhg_cross_correlation_gate(deltaS, pulse_t, gate_pulses, gate, exp_arr, sk, rn, n)[source]
core.gradients.twodsi_z_error_gradients.calculate_Z_gradient_pulse(signal_t, signal_t_new, pulse_t, gate_pulses, gate, tau_arr, measurement_info, is_vampire)[source]
core.gradients.twodsi_z_error_gradients.calculate_Z_gradient_gate(signal_t, signal_t_new, pulse_t, gate_pulses, gate, tau_arr, measurement_info, is_vampire)[source]
core.gradients.twodsi_z_error_gradients.calculate_Z_gradient(signal_t, signal_t_new, pulse_t, gate_pulses, gate, tau_arr, measurement_info, pulse_or_gate, is_vampire=False)[source]

Calculates the Z-error gradient with respect to the pulse or the gate-pulse for a given 2DSI measurement. The gradient is calculated in the frequency domain.

Parameters:
  • signal_t (jnp.array) – the current signal field

  • signal_t_new (jnp.array) – the current signal field projected onto the measured intensity

  • pulse_t (jnp.array) – the current guess

  • gate_pulses (jnp.array) – the current gate-pulse guess

  • gate (jnp.array) – the current gate

  • tau_arr (jnp.array) – the delays

  • measurement_info (Pytree) – contains measurement data and parameters

  • pulse_or_gate (str) – whether the gradient is calculated with respect to the pulse or the gate-pulse

Returns:

jnp.array, the Z-error gradient

core.gradients.vampire_z_error_gradients module

core.gradients.vampire_z_error_gradients.calculate_Z_gradient(signal_t, signal_t_new, pulse_t, gate_pulses, gate, tau_arr, measurement_info, pulse_or_gate, is_vampire=True)[source]

Calculates the Z-error gradient with respect to the pulse or the gate-pulse for a given VAMPIRE measurement. The gradient is calculated in the frequency domain.

Parameters:
  • signal_t (jnp.array) – the current signal field

  • signal_t_new (jnp.array) – the current signal field projected onto the measured intensity

  • pulse_t (jnp.array) – the current guess

  • gate_pulses (jnp.array) – the current gate-pulse guess

  • gate (jnp.array) – the current gate

  • tau_arr (jnp.array) – the delays

  • measurement_info (Pytree) – contains measurement data and parameters

  • pulse_or_gate (str) – whether the gradient is calculated with respect to the pulse or the gate-pulse

Returns:

jnp.array, the Z-error gradient

Module contents