NDT.net • April 2004 • Vol. 9 No.04

CSSP Diffraction Simulation
Shareware software tool for generating diffraction patterns for ultrasonic probes.

Philippe Rubbers
Corresponding Author Contact:
Email: Philippe.Rubbers@eskom.co.za

New Vers. 3.3 released 9 Jun 2004
Download Simulation Software
diffractionsimulator_v3-3.zip [7.6 MB]

Updated Article for new Vers. 3.3


Philippe Rubbers developed the ultrasonic processing technique named 'Complex plane Split Spectrum Processing'. For this technique to be accepted by industry, it requires extensive demonstration, validation, and lastly mathematical proof. With this in mind Philippe Rubbers tried to source a shareware simulation package, but could find none that output the raw data of diffraction patterns with both Amplitude and Phase, resulting in this tool.


The software generates the diffraction pattern for selected probe, material and viewing cross section settings. Diffraction patters are calculated for a range of frequencies, and the user can select the diffraction pattern frequency. Calculated diffraction patterns can also be saved by pressing the Export button in the 'Advanced' tab. Software for viewing saved diffraction patterns will be made available shortly. For ease of use, a default set of diffraction patterns is pre-loaded with the software. The user can view either diffraction amplitude or diffraction phase.


  1. Select the material properties of the shoe being used. If no shoe is used, set the material properties to be the same as the block being tested. Only three settings are required: Long wave velocity (cl), Transverse wave velocity (ct), and relative density.
  2. Select the material properties of the component being simulated.
  3. Select the probe parameters, such as crystal size, and the number of elements used to simulate the crystal. Note that as the number of elements is increased, the accuracy of the simulation will increase, but at a high cost to both speed and memory requirements.
  4. Select the cross section viewing area, including depth and width of the required pattern.
  5. Select the viewing parameters, such as selection of Longitudinal or transverse wave and display resolution.
  6. Press the Re-Process button and wait while the diffraction patterns are calculated.
  7. Once calculated, one of the set of diffraction patterns can be viewed by selecting the current frequency.
If required, the data can now be exported to disk.


The display has three main components:

Fig 1: Display layout


The user can set the following basic dimensions in the 'Dimension Layout' section: Depth: Maximum depth of the calculated diffraction pattern Width1: The width of the diffraction pattern before the probe exit point. Width2: The width of the diffraction pattern after the probe exit point. Note that for Phased array probes, the exit point is determined by the nominal exit point Angle: This is the probe angle as specified by the manufacturer (or nominal probe angle for Phased Array probes) Probe length: This is displayed here for convenience, however it must be changed in the 'Settings tab' Height: Height of centre of probe. Depending on the angles etc, this value may be automatically corrected if it results in a portion of the probe being inside the block.

The settings tab controls all the finer parameters and is divided into four tabs:

Sets the material properties of the block, as well as the probe shoe.

Fig 2: Settings tab: Material parameters

The available settings include: cl: Velocity of longitudinal waves in the material ct: Velocity of transverse waves in the material g: Relative material density These settings are required to determine the coefficients for mode conversions. Mode conversion equations from Krautkramer & Krautkramer (English 4th Ed.) Were used for this software. The material velocity for which the diffraction pattern will be generated is also displayed in this tab.

The diffraction patterns are generated using Huygens principal, and are therefore simulated by an array of point sources.

Fig 3: Settings tab: Probe parameters

The location of these point sources can be selected to model one of three types of probes:

  • Single crystal rectangular
  • Single crystal circular
  • Rectangular Phased Array probe.
In addition to modelling the probe, the probes specified wave mode must be selected. Note that this is required for the mode conversion calculations.

For each of these probe types, a number of settings are available as listed below:

Sources: The number of point sources. The more sources, the better the simulation.
Length: Crystal length in the major axis as shown in the 'Dimension layout'
Width: Crystal width in the minor axis, or into the screen in the 'Dimension layout'
Sources: The number of point sources. The more sources, the better the simulation.
Diameter: Crystal diameter, which will be displayed as length in the 'Dimension layout'.
Phase Array:
Only rectangular Phased Array probes can be simulated at this stage, with all elements active, and the point sources distributed randomly in the element area.
Sources: The number of point sources. The more sources, the better the simulation. Note that the actual number of sources may be changed automatically to ensure that each element in the Phased Array probe has an equal number of elements.
Length: Crystal length in the major axis as shown in the 'Dimension layout'
Width: Crystal width in the minor axis, or into the screen in the 'Dimension layout'
Elements: The number of elements in the Phased Array probe.
Pitch ratio: The ratio between the distance between elements and the width of the elements themselves. Since elements cannot overlap, this value ranges between 0.01 and 1.
Focus depth: The depth for which the Phased Array delay laws are set.
Focus angle: The angle for with the Phased Array delay laws is set. Note that this is the final angle, with the shoe included. This may range from -89 degrees to 89 degrees. For a sector scan, an array of diffraction patterns will be required, one for each angle.
When any of the settings are changed, the source locations will be changed in the display.

Fig 4: Settings tab: Probe parameters for Phased array probes

The display parameters refer to the diffraction display as well as additional settings for the calculations:

Fig 5: Settings tab: Display parameters

Diffraction type: This is not the same as the probe wave mode (see 'Probe parameter settings'), but refer to the display mode. For example, a 60 degree Long wave probe also generated shear wave components. If the shear wave diffraction patterns are required, the diffraction type must be set to Transverse.

Display resolution: This defines the resolution in the diffraction pattern. Note that the processing time is proportional to this value cubed, so use this with caution. As a guide, refer to the maximum frequency 'Fmax', which should be approximately the maximum probe frequency. Reducing the resolution further will increase the maximum frequency, however since the probe cannot generate these higher frequencies, it will be meaningless.

Image frequency: Once a set of diffraction patters is calculated, the user can select the displayed pattern by selecting the relevant frequency using this horizontal slide.

Parameters for the current image frequency are also displayed, such as the near field depth, the current wavelength and the frequency resolution.

This tab is used to export the diffraction patterns to disk for use with the analysis software. Note that multiple files will be generated, with one per frequency step. For this reason, a file path is required, and not a file name. Do not save multiple simulations in the same directory if you intend to make use of the analysis software, which will be released shortly.

Fig 6: Settings tab: Advanced


The results of the simulation are displayed in this surface plot. The amplitude scale is a percentage with respect to the signal induced into the probe. The phase scale (when displaying phase) is in radians.

Fig 7: Diffraction pattern: Amplitude and phase


Once all the settings have been entered, the user may press the ''Re-Process' button. The computer will then calculate the diffraction patterns as required. While performing the calculations, the software cannot be stopped without loosing all your settings. A file save and file open will be included in the next version, as well as a means of halting the software in the middle of a calculation.

The diffraction pattern can be displayed in either an amplitude mode or phase mode as selected by pressing the 'Amplitude/Phase' button.

You can quit the software (after completing calculations) by pressing the Quit button.

The required processing time in minutes is estimated, as well as the required RAM for processing to be performed without disk swapping. If less RAM is available, processing speed decreases dramatically.


The exported data has the following basic format:
  • Header
  • Amplitude array
  • Phase array
The Header is made up of double precision values as follows:
Double 1: Depth
Double 2: Width
Double 3: Length of header

The Amplitude array is an array of single precision values, of width and depth as specified in the header. The Amplitude array starts at 'Length of Header' as defined in the Header.

The Phase array is an array of single precision values, of width and depth as specified in the header. The Phase array starts at the end of the Amplitude array.


Requires extensive processing power as well as memory capacity. Beware; check the 'Required Processing time' before processing. If this value is too large, reduce some of the parameters. The frequencies of the diffraction patterns are automatically selected such that the viewing software (available shortly) can generate pulses and wave fronts. Further development expected:
  • Better source (probe) modelling. (Suggestions welcome)
  • Stop calculations button
  • More probe configurations. (Suggestions welcome)
  • Surface waves…. Philippe Rubbers need help for this…. Suggestions welcome.
Please e-mail me on Philippe.Rubbers@eskom.co.za if you come across any bugs.


Thank you to Eskom Resources and Strategy for support funding.
Thank you to Ed Ginzel for assistance in mode conversion calculations.
Thank you to Konrad Hartmann, Hugh Neeson, Manfred Johannes and Arthur Every for our many discussions and for their insight which has enabled this software to get this far.

© NDT.net |Top|