###### Downloads

DIN A1 poster [PDF]VWPM for WIN64 [.exe]

3D WPM for CPU [.bin]

2D WPM for GPU [.bin]

3D WPM for GPU [.bin]

Simulations for propagation of electromagnetic fields are time consuming for complex or large systems. The Vector Wave Propagation Method is a Fourier method, based on the Raleigh-Sommerfeld diffraction integral and the scalar Wave Propagation Method (WPM) introduced by Brenner et. al. in 1993. The VWPM was introduced by Fertig et. al. 2011. It simulates the propagation of three-dimensional vector waves through inhomogeneous media over the full range of spatial frequencies, i.e. without paraxial limitations as they exist for example in the Beam Propagation Method (BPM).

Compared to the Finite Difference Time Domain (FDTD) method, memory space and calculation time consumed by the VWPM are low while the results are comparable for systems with a preferred (optical) axis of propagation. This makes the VWPM a useful method for simulating complex lens systems or comparable system.

A multi-threaded version of the VWPM algorithm exists since 2011. It scales with second order in the number of samples for the three-dimensional case. The two-dimensional scalar algorithm has been ported to a massively parallel GPU system in 2017 and subsequently the three-dimensional and vector versions as well. Executables and system configuration files are available for download in the tables below. Further runtime improvements are subject of investigations.

The list of Fourier simulators shown here covers Beam and Wave Propagation Methods for scalar and vector waves to run on CPU and GPU hardware. It has to be mentioned that a vectorial version of the Beam Propagation Method if of limited benefit due to its limitation to paraxial propagation. All methods provided here are unidirectional algorithms. The bidirectional versions are available as well but not for free download. All binaries have been compiled for Linux (Ubuntu).

Method | Type | 2D/3D | CPU | GPU | File |
---|---|---|---|---|---|

SBPM^{1} |
scalar, unidirectional^{3} |
2D | ✓ |
✓ |
[.tgz^{*}] |

SBPM | scalar, unidirectional | 3D | ✓ |
✓ |
[.tgz^{*}] |

SWPM^{2} |
scalar, unidirectional | 2D | ✓ |
✓ |
[.tgz] |

SWPM | scalar, unidirectional | 3D | ✓ |
✓ |
[.tgz] |

VWPM | vectorial, unidirectional | 2D | ✓ |
✓ |
[.tgz] |

VWPM | vectorial, unidirectional | 3D | ✓ |
✓ |
[.tgz] |

[2] Wave Propagation Method

[3] bidirectional algorithms are available for all methods but not listed here.

[*] Electromagnetic programming laboratory. Contains various benchmarks for standard and optimized 2D/3D CPU and GPU versions of the BPM.

System | File |
---|---|

Homogeneous Medium | [.cfg] |

Interface | [.cfg] |

Waveguide | [.cfg] |

Lens | [.cfg] |

Taper | [.cfg] |

Splitter | [.TBD] |

Grating | [.cfg] |

Asphere | [.TBD] |

User-defined | [.TBD] |

export LD_LIBRARY_PATH = **your_tar_extract_dir**:$LD_LIBRARY_PATH

To start a simulation on your

./pm **-p** -i wguide.cfg

./pm **-g** -i wguide.cfg

./pm **-g -p** -i wguide.cfg

./pm -g -p **-c** -i wguide.cfg

./pm -g -p **-c** -i wguide.cfg -r qor.csv

./pm -q -g -p **-c** -i wguide.cfg -r qor.csv

./pm **-h**

[global]

nx = 48

ny = 48

nz = 96

x = 4000

y = 4000

z = 8000

method = vwpm

scale = nm

[/global]

Gaussian beam | Plane wave | User-defined |

[wave] |
[wave] |
[wave] layer-sections are under work and will be available soon. |

Homogeneous medium | Lens | Waveguide | Taper | 2D Grating |

[layer] |
[layer] |
[layer] |
[layer] |
[layer] |