You do? I have e.g. not seen anytning about ascent rate in either Buhlmann's+GF or Shreiner's equations, yet from my experience with carbonated beverages I'm pretty certain the rate of depressurization is very much a risk factor. So with Buhlmann+GF any risk related to rapid ascents is either not factored in, or programmed as some unknown add-on on the side by the manufacturer. At least bubble models are supposed to have bubble formation designed in from the start...
Algorithms employing either the Schreiner or the equivalent Buhlmann equation to calculate inert gas loading in the tissue compartments do take the rate of ascent/descent into consideration. Some programs will include a constant depth equation when diving at constant depth. This equation can be derived by setting R = 0 in the equation. The following excerpt was taken from the paper "DIY Decompression" by Stuart Morrison.
[-------
You can assume an instant descent to keep things simple but on deep dives there can be quite a lot of ongassing during depth changes. A normal descent rate is around 30m/min. There is an equation known as the Schreiner equation which calculates the gas loadings for a descent:
P = Pio + R(t - 1/k) - [Pio - Po - (R/k)]e^-kt
where:
Pio = initial ambient pressure minus water vapor pressure
Po = initial compartment inert gas pressure
R = rate of ascent/descent times the fraction of inert gas
t = time interval
k = half-time constant = ln2/half-time
e = base of natural logarithms
--------]
Gradient factors do not modify the inert gas pressure directly, i.e. the P in the above equation. They are used in the formula to calculate the ceiling. Here is the formula from my spreadsheet (p_gas is the inert gas pressure, a_n2he and b_n2he are the a and b coefficients, sp is the inert gas pressure at the surface):
Pamb = (p_gas - common(GF) * a_n2he) / (common(GF) / b_n2he - common(GF) + 1)
new_ceiling = Pamb - sp 'convert pressure to depth
Pamb is the ambient pressure at the current depth as modified by the current GF. For each iteration of the dive program a new_ceiling is calculated for each tissue compartment and compared with the stored maximum ceiling and replaces it when it is greater than the previous ceiling.
To calculate the ceiling of the first stop the following is used:
'calculate the first stop at GFLo using the formula:
' D = ((P - GF * a) / (GF / b - GF + 1)) - Psb
'where: D = depth, P = total gas pressure, GF = gradient factor = GFLo,
'a = coefficient a, b = coefficient b, Psb = ambient surface pressure
'the first part within parentheses calculats a pressure. Subtracting
'the surface pressure converts the result to a gauge depth.
first_stop = ((p_gas - gf_lo * a_n2he) / (gf_lo / b_n2he - gf_lo + 1)) - sp