Volume*

Volume* is a volumetric calculator app for Android. It was built in Google App Inventor and made available in the Android Market on 4 May 2011.

Functionality
The app is very simple. It is a straightforward calculator, with lookup of geometric correction factor and formation volume factor. It is designed to be handy, perhaps a little didactic. But it was mostly an experiment in creating applications.

Version 3.2

 * Released 13 November 2011
 * Substantially changed the More... view, which now takes up the whole screen
 * Option to not remember the Imperial units setting from session to session
 * Option to not remember the benchmark crude choice from session to session
 * Option to provide a default email address (remembered from session to session)
 * Moved Email button to main screen; duplicated Store button on Main screen
 * Store button now does not accept a blank response, which cancels the dialog; use long-press to save an unnamed prospect
 * Fixed a small bug with a notification for Risk*

Version 3.1

 * Released early November 2011
 * Added option to calculate a value for Bg, given pressure, temperature, and Z factor

Version 3.0

 * Released 12 October 2011 (updated to 3.0.2 on 26 October)
 * We have added gas volumetrics
 * The app grabs the latest gas price, as for oil (Nymex ticker symbol NGxxx.NYM, where xxx is a date code, set for 45 days in the future)
 * Note we had to move the Imperial toggle to the 'More...' menu
 * Also in the 'More...' menu: other Benchmark crude price options (Brent, Dubai, and Canadian Heavy, with Nymex ticker symbols BZ, DC, and WCC respectively)
 * You can provide Bg or expansion factor for gas (e.g. 0.004 or 250)
 * In gas mode we report barrels of oil equivalent as well as scf and Sm³
 * Note that Risk* also gives boe for now, even though it's labelled as bbl
 * Note we changed the order of N:G and porosity, and made the variables italic and more 'mathy'

Version 2.0

 * P(discovery) has been added as a new field, or you can use the new Risk* app (also free in the Market) to build a risk profile
 * The interface has been redesigned to accommodate risk
 * The selected geometry is now displayed on the Geometry picker, when that option is used
 * As in recent releases, you can only reset the fields now with a *long* press of the reset button
 * Fixed a bug which failed to store prospect data properly when Store was long-pressed

Version 1.1.2

 * Released 28 July 2011
 * Some users were accidentally resetting the fields by shaking the device, so this function has been removed
 * To reset, please long press the RESET button at the bottom of the screen; a short press will not work
 * Database and email are now accessed via More... at the bottom of the screen
 * Delete a single prospect from the database using the Delete button
 * Clear the database with the separate Clear button; this option is no longer in the prospect list itself
 * There is a one-time notice at start-up to notify the user of the most important changes
 * Fixed a bug which affected the Relief/Geometry field: if a geometric factor was entered (a number less than or equal to 1) and Imperial was then checked, the factor was converted to feet

Version 1.0

 * Released 3 June 2011
 * You can now save a prospect to a database on the phone, optionally with a name, and recall saved prospects from a list
 * The list of prospects persists from session to session; it is not transmitted to the internet in any way
 * You can fetch the oil price form the web any time you want to, by tapping the button marked USD/bbl
 * The Reset button has gone—we needed the space—just shake the phone or tablet to reset
 * Fixed some bugs:
 * Setting relief smaller than thickness could result in a negative volume: now thickness is reduced to be equal to relief
 * If you were using a volume in the first Area or Volume field, then switching between metric and Imperial units now works properly
 * Tapping Calculate while the app was fetching oil price from the web caused a crash, but now is tolerated

Version 0.6

 * Released 19 May 2011
 * Email a prospect: you can now email your inputs and results, to save you remembering your inputs
 * Live oil price: the app grabs the WTI futures price (for 45 days hence) from Yahoo Finance (ticker symbol CLxxx.NYM, where xxx is a date code)
 * Link to help: there's a link to the app's page in AgileWiki for detailed help
 * Enter geometric factor: you can now enter G directly, instead of using relief to calculate it
 * Porosity, N:G, SO, and BO assume that a number > 1 is a percentage

Previous versions

 * Shake the phone to reset the form (note: some phones are quite sensitive and reset easily)
 * Fudge factor for custom parameters, such as recovery factor, discount, etc.
 * Click on the star for 'about' info
 * If you leave Thickness blank, it assumes that Area is actually Volume
 * Geometric correction factor based on a simple choice between dome-like or flattish structure
 * N:G, Bo, and Fudge default to 1
 * So and Porosity default to 0
 * Bo has a simple selection, to act as a guide; it can be overridden by entering any other value
 * The Calculate button has the equation on it, for reference
 * You can switch to Imperial any time, everything converts

Use rock volume
You can use gross or net rock volume instead of area &times; thickness by simply leaving Thickness blank and using the Area field for rock volume. If you want net rock volume, leave N:G blank as well.

Use a custom geometric factor
There is no way to enter a custom geometric factor in the Relief box, so just leave it blank and use the Fudge Factor.

Use a recovery factor
Use the Fudge Factor field.

Use some crazy units
Not recommended, but all these parameters are simply multiplied according to the equation on the Calculate button, so if you can keep track, feel free to use any units you like.

Compute uncertainty or risk
Stay tuned for our next version of the app.

Parameters
The app computes oil volume V according to the equation


 * $$V = A \times T \times G \times \phi \times N\!\!:\!\!G \times S_\mathrm{O} \times \frac{1}{B_\mathrm{O}} \times F $$


 * Area A or Volume: The mapped area of the prospect, in km2 (or acres, if Imperial is checked). Alternatively, you can enter the gross (or net) rock volume of the prospect, in km3 (or acre-feet). If you enter a volume, don't enter anything in Thickness (it defaults to 1 in this case). If you enter the net rock volume, don't enter anything in N:G (defaults to 1).


 * Thickness T or blank: The stratigraphic thickness of the gross reservoir interval, in m (or ft). Leave it blank if you entered a rock volume in Area. If you enter a value for Relief (see below), then thickness must be less than relief. If it isn't, thickness will be reduced to be equal to relief (you will see a notification). This is because the relief controls the height of the column, and thus the effective thickness (since we don't have a field for column height).


 * Relief: The structural relief of the trap, sometimes called the height of the closure, in m (or ft). It's just the vertical distance between the crest and the spill point. It is used to calculate the geometric correction factor, nothing else. If you prefer, you can just enter a correction factor directly—the app assumes any number below 1.0 is a geometric correction factor. If you don't want to use a correction factor, leave it blank to use the default value of 1.0.


 * Geometry G: Select the gross sectional shape of the prospect—a rounded dome (like half a soccer ball) or a flat-topped container (like a soup dish). Select the one most like your prospect. If you just want a flat slab, leave relief blank. The geometric correction curves are shown in the figure (right).




 * Porosity &phi;: Enter a decimal fraction (sometimes called porosity units, p.u.). Values of 0.05 to 0.30 are typical.


 * Net to gross N:G: Enter a decimal fraction. Leave blank if you entered net thickness or net rock volume above. Net to gross can be very difficult to define accurately.


 * Oil saturation SO: Enter a decimal fraction. Values of 0.5 to 0.9 are typical.


 * Volume factor BO: The formation volume factor, or shrinkage factor, is the ratio of a barrel of oil in reservoir conditions to the same oil in surface (so-called stock-tank) conditions: 25&deg;C and 1 atm. Use the list to choose high GOR (high shrinkage) or low GOR (low shrinkage) oil, heavy oil (very low shrinkage), or override with any value you like. Typical values are between 1 and 1.7.


 * Volume factor BG: If you are using the gas option, we compute the gas volume factor from reservoir pressure P, temperature T, and Z factor Z : $$B_\mathrm{G} = 0.3495 \times ZT/P$$


 * Fudge factor F: If entered, this will be factored into the result. You could use it for recovery factor, for example. Typical values of recovery factor are between 0.2 and 0.6.


 * Oil price : If you are online via WiFi or cellphone data, then the app will fetch the future crude price from NYMEX (for 45 days hence). If it fails to do this for some reason, the field will be blank (with a message web error). Whether it succeeds or not, you can enter a price of your own if you wish. It is simply multiplied by the volume to get the total value in the ground, which is displayed directly below the price. If left blank, then the value is not computed. Sorry, entering a price of your own does not affect the actual oil price on the NYMEX commodities market.


 * Imperial units: Switches to Imperial units for Area (or Volume), Thickness, and Relief.

Bugs and deficiencies

 * The app has not been tested on many devices, only a Samsung Nexus S and Samsung Captivate
 * The background image ('graph paper') squashes when the keyboard pops up
 * The popup keyboard has Done instead of Next, so there's no way to skip to the next field without tapping the field itself (new in 1.1.2); probably an App Inventor bug
 * Sometimes the keyboard comes up as the full, not numeric, keyboard; probably an App Inventor bug
 * There is no sanity check on numbers, so for example &phi; can be anything at all
 * The 'click' sound for the Calculate button doesn't work any more :(
 * I should replace pressure units of psia with psi and change the symbol to Pa

For future release

 * Handle uncertainty, eg with Monte Carlo simulation (probably via a web API)