Oil and Gas: What a fascinating industry! With all the different technologies and processes involved there is so much to learn.
Why the sudden interest you may ask? Well I may have an opportunity to work for a company involved in supplying software to the oil and gas sector in a part of the UK in which we would very much like to live and doing a job with such a wide variety of interwoven fields is rather appealing. As I have no oil industry experience I have been reading and googling as much as possible.
It seems like the software and technologies required revolve around: 3D visualization and analysis of volumetric data (seismic), construction of data based on field measurements, Geographic Information Systems, GPS, fluid / gas flow simulations in porous media or in hollow volumes, visualization of the strutures (rigs etc), drilling planning and plotting. And I'm sure there are even more things to discover.
I discovered something known as "Mud Pulse Telemetry" last night. There is a good wikipedia article about it here. Basically the drill bit sends back information about it and its surroundings via creating pressure waves in the "mud" which is also being used to drive the bit. This just goes to show the level of innovation is tremendous when it comes to extracting goodies from the earth.
Not mentioned in any article I have seen (yet) is a mention of Boyle's Law? Won't the cavities left behind slowly rise? (Like the LHC's large cavities - 1mm a year). How do the drill holes survive the pressure? Especially with different surrounding material types. Do they bend and distort over the length of the hole? I should imagine they do - more so with non-vertical ones. So many interesting things to find out!
In order to learn more about the software challenges involved I've modified my raytracer (the version that used a voxel grid) to render 3D volumetric data. I need to adjust the viewport / clipping plane and add some more controls for tilt/pan/zoom but overall the effect is good. Then I'm going to get my CFD code to work inside cavities / porous media inside this 3d volume. The from there simulate some drillings and apply a LBM method ( a finite element analysis method should also work) to surrounding rock to see how it distorts. Then have the hole interesect a fluid cavity as see how everything interacts. May as well aim big :)
Luckily I have a large chunk of the code written or in development for most of these pieces. The problem I've got (again) is obtaining a real 3D seismic data set. My raytracer easily renders a 256x256x256 volume in real time BUT from what I believe the real world data is many times bigger. This will need some special modifications to cope with the sheer volume of data. Interestingly I think the memory size / bandwidth will be the single biggest limiting factor so as the first modification I will be using both of my 8800GT's to do calculations.
As I have been unable to obtain real world 3D data, tonight I will create a 2024x2024x2024 (2 bytes a point) data set which will occupy 16GB. 16GB is clearly too big for my 512MB cards so will be a very good exercise in data management and measuring host to device transfer speeds.
To construct the data I will be using a random number generator (pseudo one as I no longer have access to a radioactive source...) then using a 3D gaussian to smooth the data points into something a little more visually appealing (hopefully). I will later chop our some irregular regions to make reservoirs :p
With any luck if they do decide to interview me I won't come across as a complete idiot and may be able to answer some technical questions. For some reason I tend to freeze up in technical interviews so hopefully more knowledge of the subject and terminology will help. Regardless of that, the actual field is fantastically interesting so definitely not wasted time.
Well that will keep me busy for quite a while... Luckily my wife would really like to move to the area in question too, so is quite happy for me to bang away on the keyboard in the evenings - as long as the dishes are done of course :)