boiling_flow.boiling_flow#

Functions#

Functions:

generate_random_phase_screen(N, delta, L0, r0)

Generate a random phase screen from the Von Karman distribution.

boiling_flow_single_time_step(...[, gamma0])

Apply a single time-step of the boiling flow algorithm.

generate_boiling_flow_data(num_time_steps, ...)

Generate a time-series of phase screens using the boiling flow algorithm.

boiling_flow.boiling_flow.boiling_flow_single_time_step(input_phase_screen, delta, L0, r0, v_x, v_y, alpha, gamma0=1.0)[source]#

Apply a single time-step of the boiling flow algorithm. Adapted from [2].

Parameters:
  • input_phase_screen (ndarray) – numpy 2-D array of shape (N, N) containing the previous phase screen

  • delta (float) – grid sampling [m]

  • L0 (float) – outer scale [m]

  • r0 (float) – Fried coherence length [m]

  • v_x (float) – flow velocity component with respect to the x-axis [pixels per time-step]

  • v_y (float) – flow velocity component with respect to the y-axis [pixels per time-step]

  • alpha (float) – flow correlation parameter in the range [0, 1]

  • gamma0 (float, optional) – [Default=1.0] anisotropy parameter

Returns:

output_phase_screen (ndarray) – numpy 2-D array of shape (N, N) containing the next phase screen

boiling_flow.boiling_flow.generate_boiling_flow_data(num_time_steps, N, delta, L0, r0, v_x, v_y, alpha, gamma0=1.0, k=4, remove_ttp=True)[source]#

Generate a time-series of phase screens using the boiling flow algorithm.

Parameters:
  • num_time_steps (int) – number of time steps to generate

  • N (int) – screen dimension

  • delta (float) – grid sampling [m]

  • L0 (float) – outer scale [m]

  • r0 (float) – Fried coherence length [m]

  • v_x (float) – flow velocity component with respect to the x-axis [pixels per time-step]

  • v_y (float) – flow velocity component with respect to the y-axis [pixels per time-step]

  • alpha (float) – flow correlation parameter in the range [0, 1]

  • gamma0 (float, optional) – [Default=1.0] anisotropy parameter

  • k (int, optional) – [Default=4] scale factor for over-sized phase screens

  • remove_ttp (bool, optional) – whether to remove tip, tilt, and piston (TTP) from the output phase screens

Returns:

output_phase_screens (ndarray) – numpy 3-D array of shape (num_time_steps, N, N) containing time-series of phase screens

boiling_flow.boiling_flow.generate_random_phase_screen(N, delta, L0, r0, gamma0=1.0)[source]#

Generate a random phase screen from the Von Karman distribution. Adapted from [1].

Parameters:
  • N (int) – screen dimension

  • delta (float) – grid sampling [m]

  • L0 (float) – outer scale [m]

  • r0 (float) – Fried coherence length [m]

  • gamma0 (float, optional) – [Default=1.0] anisotropy parameter

Returns:

phase_screen (ndarray) – numpy 2-D array of shape (N, N) containing the random phase screen


Disclaimer: Approved for public release; distribution is unlimited. Public Affairs release approval # AFRL-2025-5580.