Well I played a bit around with BfX_CD and the new abilities of the user supplied drag functions. It was a 1 minute activity to plot the measured drag function of the Lapua 6mm 105 gr scenar with g7 in a graph.
One might say that the shapes differ - rather much. The absolute magnitude is not very important as the ballistic coeficient is used to fix the agreement with data in the case of g7. It is a pitty that we do not know how Lapua did the measurements and how accurate they are. The discussions about the best drag function for long range shooting seam however rather pointless.
You can download now a BfX version capable of working with custom dragfunction. Read the gettingstarted workbook to understand how. As this is the most complex addition to BfX since its beginning, and although the software is full of checks, there is increased risk of crashes. Take care and save your work regulary.
The Lapua dragtables can be downloaded here: http://www.lapua.com/upload/ballistics/qtulapuaeditiondragtables.zip You can also download a free ballistic calculator, a rather sophisticated one from the Lapua site that works with these dragfunctions. You'll see then that BfX accurately reproduces its results. The Lapua drag tables can be opened with a normal text editior. Then, bassically, cutting and pasting will put the table in Excel.
How does the custom dragtable work in BfX?
As said before, read the GettingStated workbook. Bassically however, you fill a range in Excel and supply it to BfX instead of the dragfunction string: =bfx_vt(750;300;1;<range>). One has to use a ballistic coefficient of 1.
Expect in future other types of drag function. The next big project is the 6DOF extension.
One thing what is needed to supply your own (or Lapua's or ...) drag function to BfX is a function called BfX_CRC. CRC means cyclic redundancy check. It basically computes a 13 character text from a range of cells - no matter how large. If anything changes - the number in the text changes. It will be used to tell BfX that a certain drag table does not have to be read again because nothing has changed.
This was a small project gone out of hand. It completely generalized the internal structure of BfX (for the better) and the implementation process discovered a few bugs you probably never encountered. I updated the Getting Started workbook- you realy have to have a look at the "check range changed" worksheet to see the raw power of BfX CRC in spotting the smallest change in this rather huge workbook.
BfX_CRC noticed that under windows XP and Excel 2003 BfX_CD didn't work (why did no user of BfX report this to me?) and spotted a few deviations in the worksheet that contained the BfX_Ran functions. These turned out to be a worksheet problem that I fixed. Now there is an single issue left with no practical impact - BfX_CRC spots a deviation in the cell G500 of the Drag Functions worksheet between Excel 2003 Windows XP and 2010, windows 7 64 bit . However, the number therein is to the last if its many decimals, the same! I will have a digital debug look at it later.
Because of the rain there was an excuse to start with the upgrade of BfX to include user defined drag functions. The first step is done, BfX is able to read in (any) tables and check them if they are changed since last time they were read. As a by product the function BfX_CRC(<range>) exists now that computes a string, e.g. BfX2269275294CRC, of 16 or less characters (32bit cyclic redundancy check (log10(2^32))+ BFX + CRC) . This value changes if the values and their order in a range of cells changes.
This BfX_CRC is quite handy for it self. Suppose one fills a quite large table with calculations. Then the person changes something in the workbook which should not affect the numbers and strings in the table. If, however they are, BfX_CRC computes another number.
Later this week I release the version with BfX_CRC, it needs just a small change in the source code...
it is a bit quiet on the forum. One of the reasons is that I am not very active with programming. To break the silence a bit I will mention here two things that I will implement shortly: a drag table for spheres to facilitate a forum member who wants to implement a ballistic calculator for shotguns, spin drift and the Miller stability criterium as soon as I have grasped how these formula's are derived, and the ballisctic coeficient calculator of Mac Coy.
I have updated bfx. BfX_C does now incorporate humidity. Furthermore the function BfX_AD has been added with which you can calculate air densities. Also, BfX can convert between more units - see BfX_help2. The "getting started" spreadsheet shows it all.
In fact this is an early release, the getting started spreadsheet and the site will be worked upon further. Foremost it will discuss the effects of atmospheric conditions. Also a detailed comparision of BfX calculations with radar measurements on Lapua bullet trajectories will be made.
as a by product of my investigation of the atmospheric conditions for which various drag computations were done in the past I have constructed bfx_ad(temp, pressure, humidity) that computes air density and extended bfx_c to bfx_c(temperature, pressure, humidty). Formulas were taken from the article "Revised formula for the density of moist air (CIPM-2007), A Picard1, R S Davis1, M Gl¨aser2 and K Fujii3, Metrologia 45 (2008) 149–155"
Now the calculation of drag based Pejsa's drag coeficients is also done at the standard ICAO pressure. I have used the opportunity - now that I know how Pejsa's drag function is based on Ingalls Mayevski's parametrizations of deacceleration - to introduce the Ingalss Mayevski drag function to BfX. Of course the associated drag is also calculated at ICAO conditions.
I have reproduced Ingalls table and will put the spreadsheet online soon. By doing so I found a bug in BfX_Xv (it didn't want to parse "fps") and repaired it. I encountered also a wrong conversion constant from inchHg to Pascals. Furthermore I introduced the PSI (pounds per square inch) to BfX.
These modifications had impact on the GettingStarted spreadsheet and hence I had to modify it a bit.
You can download the updates. Soon I will extend my site with a discussion on atmospheric conditions and drag calculations
Delved deep in the issue, Pejsa was not clear about it. However on page 76 in his book he stated that he adjusted his A function to equal the Mayevski a function at 2600fps.
this means that he uses the Ingalls conditions P=30inchHg, T=60F, humidity=67%.
The (ICAO air density)/(Ingals air density)=1.00371. Although the effects will be minor to the point of being neglible, I will adapt Pejsa's drag calculations in BfX to ICAO. Furthermore, I will add Mayevski Ingalls (under ICAO conditions) drag functions.
Lapua has radar measurements for many of its bullets. From this their specific drag functions has been calculated. I downloaded the free Lapua QuickTarget ballistic calculator from www.lapua.com and made a quick comparision of its output for the Lapua GB478 Scenar 6,8 gram (105 gr) 6mm NormaBR bullet. Later, after I have sorted out things with Pejsa's calculations (did he use US Army Standard Metro or ICAO conditions plus 78% humidity?) I will do a more elaborate calculation. I think the results are pretty good. The question is how well the QuickTarget calculations match the exact trajectory? Ideally one wants to compare calculations with the actual path properties too!
Dear all, Lately I was confused which atmospheric conditions I used in BfX - it was too long ago to remember and it seemed I also forgot the physics behind the drag functions.
Okay. Drag functions are independend of atmospheric conditions.
In the calculation of drag you have to use a density of air. In BfX the ICAO conditions are used (15 degrees C and 101324,6 Pascal 0% humidity), which are common for present day ballistic programs. Just checked the code - I am sure again - it holds for any BfX drag function
There is also the US Army standard meteo conditions (15 degrees C and 99991,6 Pascal), frequently used in the past. BFX_C which is used to convert ballistic coefficients, contains a bug thatI will soon fix. It incorrectly converts the ballistic coeficient as it assumes that BfX uses the US Army standard meteo conditions. if you enter =BfX_C() and you see the output BfX_C(T=15 [Celcius]; P=99999.76 [Pascal] ) then this is erronuous.
The new version will show BfX_C(T=15 [Celcius]; P=101324,6 [Pascal])
I found on the website of the South Australian F-Class the following (part of) an interview with Brian Litz http://www.safclass.com.au/celebrity3.html The reasoning might be explored with the WhatDoIShootToday spreadsheet I released lately...
You're eluding to the development of higher BC .30 caliber bullets which are currently under development (no timeline yet on release dates). The new .30 caliber bullets will have much higher BC's than any existing line of bullets. Since they're basically scaled up copies of the new 7mm Hybrid, the BC's on the new .30 cal Hybrids will be higher than the 7mm's. Will they be favored over the 7mm's? That's a question I think will be governed by each individuals thoughts/feelings about recoil. Consider the 6.5mm vs 7mm debate. The consensus seems to be that the 6.5mm is inherently more precise than the 7mm's, probably due to the effects of recoil on the platform and shooter. However the 7mm is a better ballistic performer, so there's a trade-off. The introduction of high BC .30 caliber bullets is simply an extension of that same trade off. Rifles built to shoot the new .30 caliber heavies (~230 grain range) will probably be capable of less inherent precision than the 6.5mm's and 7mm's, but will be even better ballistic performers than the 7mm's. For those seeking advice regarding the trade-off between precision and ballistics, I'll offer the following. Consider the scores and standings during a long tournament or season aggregate. On the relays/days/matches where the conditions are good (this is where the smaller, more precise calibers do well) the point spread in the standings is very small. In other words, the top twenty places are only separated by a couple points. For example, the 200's, 199's, and 198's might be fired with the 6mm's and 6.5mm's because they tend to be more precise, and the 197's, 196's, and 195's are shot by the 7mm's and .30 cals. Now if the event is long enough, there is going to be at least one, likely several relays/days/matches where the conditions are horrible. On those inevitable days, the point spread is greater, and the larger calibers have the advantage. Now the larger calibers (better ballistics) are shooting 195's, 193's, and 191's, while the smaller calibers are getting all blown around in the wind and shooting in the 180's. Here's the important conclusion to draw from the above analysis: It's better to optimize your equipment for the situations when the point spreads are large. Imagine you're shooting a 7mm in a 3-day tournament. It's calm the first two days and you're a couple points and a bunch of X's behind the smaller calibers. Now the last day comes, and with it, the inevitable wind. You can make up more on a windy day with superior ballistics than you're likely to lose in two days to slightly compromised precision. Of course things don't always play out as described above. There are exceptionally precise large caliber rifles, and exceptionally talented wind readers shooting small caliber rifles. However as an analysis of general trends, I've participated in the scenario above many times.