This is based on a recent blog post 'Helmhurts' at www.jasmcole.com, which was featured on io9, Ars Technica, the Daily Mail, Scientific American and many other blogs.
This app uses the 2D Finite Difference Time Domain method to solve Maxwell's equation on a Cartesian grid. An example floorplan is included in the app.
How to use:
Your floorplan needs to be a .png file, with empty space marked black and materials marked with colours. Images will be converted into the correct materials on loading — this may take a few seconds.
Pixels are mapped to 1 centimetre, so scale the floorplan appropriately.
The simulation is limited in speed due to the mobile processor, so try to keep images below approximately 500×500 pixels
Touch the image to set a router location, marked by a red circle. Select the antenna parameters at the bottom.
Set the number of iterations to run for, how often to plot the result, and the upper limit on the colourmap scale.
Choose a field to plot — the default is the out-of-plane electric field.
Click run and the simulation will begin. Click stop to pause at any time — this saves the simulation progress which can be continued by clicking run again. To reset, open an image again.
To save the simulation output as an image, click Save at any time. Images are saved to internal/external storage and added to the end of the camera roll.
To start recording a simulation click the record 'R' button. When the simulation is stopped a GIF animation is generated.
Under the bonnet:
An antenna oscillates at 2.4 GHz. The edges of the image use absorbing boundary conditions as in Mur 1981, IEEE Transactions on Electromagnetic Compatibility.
Where walls are defined, the relevant refractive indices and loss tangents for 2.4GHz radiation are used.
Wavelength and resolution are currently constant, this may change in a future release.
This app is not intended as a replacement for existing EM simulation software packages.
As a 2D approximation including only simple walls it does not accurately model a given floorplan.
It is, however, a bit of fun and entertaining to play with.