fnm_transient()
Description: Calculates the transient pressure field from an arbitrary transducer array using the Fast Nearfield Method.
Usage
pressure = fnm_transient(transducer_array, coordinate_grid, medium, time_samples,ndiv,\
excitation_function);
pressure = fnm_transient(transducer_array, coordinate_grid, medium, time_samples,ndiv,\
excitation_function, disp_flag);
pressure = fnm_transient(transducer_array, coordinate_grid, medium, time_samples,ndiv,\
excitation_function, disp_flag, nthreads);
pressure, start_time = fnm_transient(transducer_array, coordinate_grid, medium,time_samples, ndiv,\
excitation_function);
pressure, start_time = fnm_transient(transducer_array, coordinate_grid, medium,time_samples, ndiv,\
excitation_function, disp_flag);
pressure, start_time = fnm_transient(transducer_array, coordinate_grid, medium,time_samples, ndiv,\
excitation_function, disp_flag, nthreads);
Arguments
- transducer_array A FOCUS transducer array.
- coordinate_grid A FOCUS coordinate grid.
- medium A FOCUS medium.
- time_samples A time samples struct created by set_time_samples.
- f0 The frequency of the array in Hz.
- ndiv The number of integral points to use.
- excitation_function The excitation function to use.
- disp_flag Display flag, 1 = display, 0 = suppress.
- nthreads The number of threads to use in the calculation.
Output Parameters
- pressure A 4-d array representing the pressure at each point in spacetime.
- start_time A vector containing the start time for the impulse response at each observation point.
Notes
This function only calculates pressures in lossless media, so any attenuation parameter set by the user will be ignored.
Threading in FOCUS is implemented at the transducer level, meaning that single transducers will not benefit from this feature.
Specifying a number of threads larger than the number of CPU cores available will not result in a significant additional speed increase and may in fact result in slower speeds due to additional inter-thread communication overhead.

