Release Notes | FOCUS | Michigan State University (original) (raw)
Version 0.977
Fixed bug in internal Euler angle computation.
Fixed bug in DTshift imaging scripts.
Updated draw_array function.
Version 0.976
Fixed B mode zoning of calc_bmode_zone in large_scatterer examples.
Fixed SSA error in deleted code for Euler angle rotation.
Updated draw_array and respective get_transducer functions for mm sizing and general formatting.
Updated derivative calculation error in Hanning pulse.
General update in time delay function.
Updated zmin in imaging scatter_example.
Corrected Euler angles transpose matrix so that Euler angles internally in FOCUS correctly follow a YXZ rotation convention.
Added synthetic aperture imaging scripts to Examples.
Renamed 'method'_imaging_synthetic to 'method'_imaging_pairwise to reflect a more descriptive naming convention.
Version 0.974
Updated Euler angles to accurately follow YXZ Euler rotation convention.
Version 0.972
Introduction of CUDA FNM scripts for MATLAB version of FOCUS on Linux and Windows and Examples.
Introduction of imaging functions for “prebeamform” RF data, i.e. RF data for each receive element of a receive aperture.
Introduction of imaging functions for “synthetic” aperture RF data, i.e. synthetic aperture RF data across all transmit-receive element pairings of a transmit and receive aperture.
Renaming of original imaging scripts to include “breamform” in the function name. This script breamforms RF data before convolution, significantly reducing the computation time of the convolution.
Introduction of plane wave imaging functions and Examples.
Major improvements to existing functions in FOCUS for efficiency, memory management, and code consistency.
General bug fixes.
Restructuring of get_excitation_function() and set_excitation_function() functions to include the excitation amplitude. Type help set_excitation_function or help get_excitation_function in the MATLAB Command Line for details.
Added native Apple Silicon versions of FOCUS for MATLAB and Octave.
Version 0.964
Updated Example files for ease of use and compatibility on both Matlab and Octave versions.
Minor bug fix to Rayleigh continous wave computation for rectangular transducers.
Version 0.960
Added Octave supported versions of FOCUS.
General bug fixes to kzk and imaging MEX files.
Version 0.952
Updates to ensure functionality on MacOS. Generalized Windows and Linux specific code to work on all operating systems.
Fixed potential memory leaks by tracking allocations through MATLAB supported methods.
Major bug improvements to Imaging files.
Updates to the fnm_cw_apodized function for general use.
Various other bug fixes.
Version 0.933
Minor changes to ensure support for MATLAB 2019a
Minor changes to ensure support for latest Mac, Windows, Linux OS
Minor changes to ensure support for latest Mac, Windows, Linux compilers
Updated trig calculation class for faster runtime
Version 0.927
Linux updates
Version 0.924
Added functionality to 64-bit Mac systems
Multithreading support on Linux operational again
Version 0.922
Version 0.905
Added B-Mode imaging simulations, includes cyst phantom examples with linear and curved arrays
Optimized the code by reducing divisions throughout FOCUS
Upgraded the FFT solution which has reduced the code size by 40% and increased preformance
Fixed a bug in the excitation code.
Version 0.760
Added documentation for kzk_transient and kzk_cw.
Optimized BHTE code to be about 20% faster.
Fixed a few typos and mistakes in the documentation.
Fixed a bug in bioheat_transfer that caused incorrect results to be returned.
Fixed a bug in kzk_cw that could cause a crash for small sampling frequencies.
Version 0.714
Added a CW KZK algorithm (kzk_cw) for circular and spherically-focused transducers.
Added new functions: get_apodization, get_phases, and get_time_delays.
Added documentation about lossless-only pressure calculations with fnm_tsd.
Added documentation for get_chirp and create_rect_enclosed_csa.
Updated set_time_delays to automatically detect curved transducers.
Updated example files to use some of the new functions.
Renamed kzk_nonlinear to kzk_transient.
Fixed a bug in fnm_transient for ring transducers that caused an incorrect result.
Fixed a bug in cw_angular_spectrum that caused it to differ with asa_call.
Fixed a bug in draw_array that cause spherical shells to not be drawn.
Version 0.594
Changed all transient examples to use plot_transient_pressure for their output.
Made some C++ optimizations that make this version of FOCUS slightly faster than the previous versions.
Fixed a bug that could cause MATLAB to crash when the display flag was set for multithreaded calculations.
Fixed a bug that caused incorrect results for calculations involving rotated and translated transducers.
Version 0.580
Added documentation for the get_chirp function.
Fixed a bug in impulse_begin_and_end_times that caused elements with zero amplitude to affect the calculation for the rest of the array
Various minor efficiency improvements in the C++ code.
Version 0.569
Added get_chirp(), a function that can be used to generate linear chirps
Added FDTSD support to ring transducers
Added a function to generate fully-enclosed cylindrical section arrays for use in tomography simulations
Optimized BHTE code to be about 40% faster
Changed set_excitation_function to accept a string to describe the excitation function type rather than an integer index
Changed create_spherically_focused_ring_array to accept vectors of ring radii
Fixed a bug in draw_sphericalshell that could prevent anything from being drawn and cause a crash
Fixed calculation algorithms to allow for negative element amplitudes
Fixed a bug in set_apodization that prevented column vectors from being used as apodization vectors
Fixed a bug related to coordinate grid handling that could cause a crash
Fixed a bug in impulse_begin_and_end_times that could case a crash if a transducer's amplitude was 0
Fixed a bug that caused transient pressure calculations to ignore transducer amplitudes
Fixed a bug in the FDTSD calculations that could cause MATLAB to crash
Fixed a bug that caused some MEX functions to leak memory
Fixed several memory-related bugs in the spherically-focused ring transducer calculations.
Fixed a bug that caused an error message when using set_excitation_function to set the spectral clipping value for FDTSD calculations
Version 0.551
Fixed several calculation bugs in the Bio-Heat Transfer calculations that could cause incorrect results to be returned
Changed tapered ring array examples to use constant-area rings
Version 0.540
Added support for Mac OS X (64-bit Intel only)
Merged 32- and 64-bit builds so that there is only one build for each OS/MATLAB combination
Added easier to use pressure calculation functions (cw_pressure and transient_pressure)
Added functions to calculate intensity and power
Added checks to set_medium to make sure that normal attenuation is not set for power law media and vice versa (in anticipation of power law calculations in FOCUS)
Added axis labeling to draw_array
Fixed a bug in how set_time_delays handled 2D transducer arrays
Fixed example files to use reasonable values for coordinate grid axis boundaries
Removed some debugging code from the KZK calculation
Version 0.498
Added some ring transducer array examples
Added support for nonlinear transient calculations using the KZK equation (circular transducer only)
Fixed a serious memory leak in impulse_begin_and_end_times
Fixed C++ memory management to make it easier to fix these kinds of leaks in the future
Fixed a memory management bug that occasionally caused MATLAB to crash
Fixed a bug where users would receive a warning that impulse_begin_and_end_times had not been called even if it had
Fixed some minor documentation bugs
Version 0.437
Added support for multi-threaded calculations using OpenMP. The threading is implemented at the array level such that each element is calculated in its own thread. This means that single transducer calculations will be performed at normal speed, but the calculation of transducer arrays is significantly faster, especially for large arrays.
Added a GUI for performing single-transducer CW pressure calculations.
Fixed several memory-handling bugs in the FDTSD code.
Version 0.426
Fixed several bugs in the layered ASA calculations.
Added an example for layered media calculations using ASA.
Removed the radiator_rect example because that function is no longer used.
Version 0.419
Added preliminary version of bioheat transfer calculations. Please let us know if you find any mistakes.
Added examples for Angular Spectrum Approach and ring transducer calculations.
Frequency-Domain Time-Space Decomposition has been implemented for rectangular and spherical shell transducer shapes.
Fixed a bug in set_medium that could occasionally cause a property to not be set.
Fixed a bug in draw_array that caused 3-element transducer arrays to generate an error.
Version 0.409
set_medium now supports partial arguments and string arguments as part of the first step in phasing out define_media. See the documentation for details on the new features.
C++ code has been optimized to improve the speed of some calculations (particularly rayleigh_cw) by up to 35%.
Fixed impulse_response for spherical shell transducers.
Added an example that uses the farfield_cw method.
Version 0.403
Fixed a bug in the coordinate grid for spherical shell FNM calculations
Version 0.400
Fixed a bug that caused fnm_cw to return incorrect results for spherical shell transducers.
Fixed a bug in the impulse response of circular transducers that caused incorrect results in the paraxial region.
Fixed bugs in find_single_focus_phase and find_multiple_focus_phase so that they now work correctly with 2-D transducer arrays.
Fixed some simple mistakes in the documentation for certain functions.
Version 0.391
An experimental Frequency-Domain Time-Space Decomposition method is now available. Only circular transducers are supported. Please report any errors you encounter through our contact page.
Fixed a bug in draw_array that could prevent the entire transducer array from being shown.
Several typos have been fixed in the documentation.
Version 0.383
All MEX functions now support the MATLAB "help" command. For example, typing "help fnm_cw" at the MATLAB prompt will now provide documentation about what fnm_cw does and how to use it.
Added get_excitation_function() to provide users with the values that FOCUS uses for transient calculations. See the documentation for details.
Fixed a bug in draw_sphericalshell that was causing an error.
Fixed a bug in impulse_response_parfor that was causing an error.
Fixed several mistakes in the documentation for impulse_begin_and_end_times, fnm_transient, fnm_transient_call, and fnm_transient_parfor.
Version 0.376
Fixed a bug in impulse_begin_and_end_times that was causing a crash.
Added a function to display transient pressures, plot_transient_pressure.
Version 0.370
Limited support for ring transducers (planar and spherically focused) has been added.
FOCUS now supports multiple transient excitations. A trivial example demonstrating how to use this functionality can be found in the examples directory.
All of the core FOCUS code has been optimized for maximum performance. This version is between 15 and 25% faster than the previous one.
set_digitized_time_delays has been combined with set_time_delays. See the documentation for usage details.
draw_array now supports the use of multiple colors for transducer arrays. More information can be found in the documentation.
The GUIs distributed with FOCUS have been reorganized. There is now an "unsupported" folder that contains GUIs that may not work with the current version of FOCUS for various reasons and are therefore not officially supported.
All examples now display a brief description of what they do when run. Additionally, all examples based on FOCUS-related publications have been moved to their own folder within the examples directory.
Fixed some bugs in how transient functions were handling transducer amplitude.
Version 0.332
The way transducer arrays work has been significantly changed. Arrays are now indexed in two dimensions rather than in one dimension. See the documentation for each array generation function for details particular to that function.
Rectangular transducers are now defined in terms of their full width and height rather than half-width and half-height.
Much of the documentation has been revised and updated; be sure to take a look at the Quick Start guide and the new Installation Guide.
Version 0.318
Transducer objects have two new properties: amplitude and phase. These replace complex_weight. Note that the complex_weight property will be removed from future releases. All code depending on it should be rewritten to use amplitude and phase.
Added an example file to demonstrate the array apodization features added in version 0.299.
The pressure calculation routines (e.g. fnm_call, fnm_tsd) have been significantly optimized. They are now between 20 and 50 percent faster than in previous releases.
Several example files generated unlabeled or incorrectly labeled plots. This has been fixed.
Several errors in the documentation files have been fixed. The Quick Start Guide has also been updated.
Version 0.299
Added some automatic apodization functions (see the documentation for set_apodization() for details):
Bartlett
Chebyshev
Hamming
Hann
Triangle
Uniform
Updated Quick Start Guide to explain various FOCUS parameters and how to use them.
Fixed a bug in main_interface that caused pressure fields to be incorrectly rotated.
Fixed a bug in comparecirc.m, comparerect.m, and comparesphericalshell.m that caused the scripts to produce an unexpected error.
Version 0.282
Fixed a bug in the Quick Start Guide example code that caused the example to fail if copied and pasted from the PDF.
Fixed a bug in asademo.m
Version 0.262
FOCUS now includes a Quick Start Guide with several examples to get you started.
fnm_transient_call now uses Time-Space Decomposition for its calculations. To use the old function, call fnm_transient.
A number of deprecated functions have been removed from this release; see the documentation for the functions that replace them. They include:
find_phase
get_pressure
make_tissuestruct
set_parameters
set_temporal_coordinate_grid
set_time_delays
Version 0.258
Implemented impulse response calculations.
Added option to calculate pressure fields behind sources.
Broken MATLAB code removed from several examples.
Added radiator rect.
Version 0.240
Improved memory management for spatial coordinates.
Fixed a bug in set_temporal_coordinate_grid.
Added farfield CW function.
Fixed several minor bugs in ASA code.
Version 0.231
Dramatically improved memory management.
Eliminated TransientPressureField and replaced TransientWave with ExcitationFunction. Also replaced ProblemSpace with CoordinateSystem.
Version 0.224
Added example scripts for TSD.
Added apodized circular pistons.
Removed unneccesary calculation of pressure fields behind sources.
Fixed a bug that caused a crash if a purely real complex weight was entered.
Fixed a bug that appeared when focusing arrays.
Version 0.184
Added time-space decomposition routines.
Fixed a bug that caused a crash while calculating the transient response of spherical shells.