Following a visit to Bletchley Park in March 2015, I wrote a simulator for the bombe and also for the (originally manual) process of extracting the remaining steckerboard configuration. The input data was a crib, the matching enciphered text and a bombe menu. The simulator worked through every permutation of and starting positions for the rotors until it identified a valid candidate. During this process, the bombe stops at multiple candidate positions, but most of these can be eliminated because a contradiction is reached while attempting to extract the remaining steckerboard configutation.
All of the information that I used to write the simulation came from Gordon Welchman's book "The Hut Six Story". It was a command line, text only simulation, written in PowerBasic. It was not meant to be in any way fast, efficient or elegant, the only purpose of writing it was to cement my own understanding of the process. In particular, I tried to simulate the manner in which the bombe operated. The most processing intensive part was to simulate what the mechanical bombe did easily, which is electrical propagation from the initial active circuit throughout the entire bombe, which typically involves many hundreds of passages through the bombe drums.
My simulator for a 12 Enigma-equivalent bombe (3 Rotor Enigma), running on a single thread of a 3.5GHz i5 ran at the equivalent of 27,000 RPM, compared to the 120 RPM of the later mechanical bombes.