Theis well near a river

Assume we have a well near a river that is in good contact with the aquifer. For the rest, the aquifer extends to infinity.

To simulate the well in relation to the river we need a mirror well at the opposite side, with opposite flow.

The Theis well drawdown is

$$ s = \frac {Q_0} {4 \pi kD} W(u) $$

where

$$ W(u) = exp1(u)$$

the exponential integral, and

$$ u = \frac {r^2 S} { 4 kD t} $$

The flow throug a ring with radius $r$ caused by such as well equals

$$ Q_r = Q_0 e^{-u} $$

Assume the river is straight along the y axis, and that the well is at point ($-a,\, 0$) and has a constant extraction $Q$ starting at $t=0$.

To simulate a river that causes a constant head in the groundwater, we just place a mirror well with opposite flow at the other side of the river shore, at location ($+a,\, 0$)

We will first compute the drawdown in an arbitrary point, not necessarily at the river shore. Next we well compute the inflow from the river.


In [3]:
import numpy as np
import matplotlib.pyplot as plt
import scipy.special as sp
W = sp.exp1

In [4]:
kD = 600 # m2/d
S = 0.2 # [-]
x0 = 250 # m # distance from river
Q = 1200 # m3/d, extraction of te real well
r0 = 0.25 # well radius
t = 1.0 # d
a = 125 # m distance between well and river shore

# locations of well, mirror well an observation points
x1, y1 = -a, 0.  # location of extraction well
x2, y2 = +a, 0.  # location of mirror well
x0, y0 = 50., 100.  # location of observation point

r1 = np.sqrt((x1 - x0)**2 + (y1 - y0)**2)
r2 = np.sqrt((x2 - x0)**2 + (y2 - y0)**2)

u1 = r1 ** 2 * S / (4 * kD * t)
u2 = r2 ** 2 * S / (4 * kD * t)

# drawdown
s = Q /(4 * np.pi * kD) * (W(u1) - W(u2)) # minus because mirror well has opposite Q

print("The ddn s at x0={:.1f}, y0={:.1f} at t={:.2f} d with Q={:.0f} m3/d equals {:.2f} m"\
      .format(x0, y0, t, Q, s))


The ddn s at x0=50.0, y0=100.0 at t=1.00 d with Q=1200 m3/d equals -0.02 m

Many observation points

Instead of 1 observation point, we can take many, for instance along a line throug both wells.

To prevent that the distance r becomes zero at the cell center, we set the minimum distance equal to the well radius $r_w$, which will normally be around 0.25 m.


In [4]:
# Drawdown as arbitraty points x, y
x  = np.linspace(-2 * a, 2 * a, 201)
y  = np.zeros_like(x)
rw = 0.25 # well radius (radius of borehole)

r1 = np.sqrt((x1 - x)**2 + (y1 - y)**2)
r2 = np.sqrt((x2 - x)**2 + (y2 - y)**2)

# Use logical indexing to set only a limited number of points
# Logical indexing gives as many values as the array that are 
# True of correct and False otherwise. Only the True values will be set.
r1[r1<rw] = rw
r2[r2<rw] = rw

u1 = r1**2 * S / (4 * kD * t)
u2 = r2**2 * S / (4 * kD * t)

s = Q / (4 * np.pi *kD) * (W(u1) - W(u2))
plt.title('Drawdown along a line throug the well and its mirror')
plt.xlabel('x [m], y=0')
plt.ylabel('s [m]')
plt.grid()
plt.plot(x, s)
plt.ylim(2, -2) # invert the direction of the y-axis

plt.show()


Compute the flow across a ring with radius r

The total flow across a ring with radius $r$ around a transient well is

$$ Q_r = Q_0 e^{-u} $$

And the specific discharge

$$ q_r = \frac {Q_0} {2 \pi r} e^{-u} $$

and points in the direction of the well.

The specific discharge as randomly chosen points around a well

Here we have a single well in location x0, y0 and a set random points with coordinates in the arrays x, and y.

The specific discharge is computed at all points. Then we compute the x and y components of these vectors. Finally we show them in a simple way, in which the point is indicated by a small circle and the discharge vector by a line with length proportional to its strength.


In [10]:
Q0 = 1200 # m3/d Well
x0, y0 = 0., 0.  # the location of the well

# The random observation points
a = 50 # m  a length to scale randomly chosen points
x = a * (np.random.randn(25) - 0.5)  # choose 25 random values
y = a * (np.random.randn(25) - 0.5)  # same

# Distance from each point to the well
r = np.sqrt((x-x0)**2 + (y-y0)**2)

# u
u = r**2 * S /(4 * kD * t)

# the specific discharge
q = Q0 / (2 * np.pi * r) * np.exp(-u) # m2/d
alpha = np.arctan2(y - y0, x- x0) # angle between vector and horizontal
qx = q * np.cos(alpha)   # x component of specific discharge
qy = q * np.sin(alpha)   # y component of specific discharge

scale = 2.0 # scale factor to plot specific discharge vectors

# plot the location of the well as  black ('k') circle ('o') of size 8
plt.plot(x0, y0, 'ko', markersize=8)

# in a loop, plot one vector after another
for xx, yy, qxx, qyy in zip(x, y, qx, qy):
    plt.plot(x, y, 'o', markersize=4)    # plot marker at obs. point
    plt.plot([x, x - scale * qx], [y, y - scale * qy]) # plot vector

# embelishment of the plot
plt.title('Specific discharge vectors due to well at x0={:.1f}, y0={:.1f}'\
         .format(x0, y0))
plt.xlabel('x [m]')
plt.ylabel('y [m]')
plt.grid()

# show it all
plt.show()


Inflow from the river


In [17]:
Q = 1200 # m3/d

b = 125 # m, distance of well to river shore
x1, y1 = -b, 0 # location of well
x2, y2 = +b, 0 # location of mirror well

y = np.linspace(-1000, 1000, 81)
x = np.zeros_like(y)

r1 = np.sqrt((x - x1) ** 2 + (y - y1) ** 2)
r2 = np.sqrt((x - x2) ** 2 + (y - y2) ** 2)

u1 = r1 ** 2 * S / (4 * kD * t)
u2 = r2 ** 2 * S / (4 * kD * t)

q1 = +Q / (2 * np.pi * r1) * np.exp(-u1)
q2 = -Q / (2 * np.pi * r2) * np.exp(-u2)

alpha1 = np.arctan2(y, x - x1)
alpha2 = np.arctan2(y, x - x2)

qx = q1 * np.cos(alpha1) + q2 * np.cos(alpha2)
qy = q1 * np.sin(alpha1) + q2 * np.sin(alpha2)

qin = qx

plt.title('Inflow along the river')
plt.xlabel('y [m]')
plt.ylabel('inflow m2/d')
plt.grid()
plt.plot(y, qin)
plt.show()


Compute the total inflow for a single time

We have to integrate the inflow along the y axis.

To do this, we take the pieces $\Delta y$ between the chosen point on the $y$ axis and multiply them with the averate value of $q_{in}$ at each piece on the $y$ axis.


In [29]:
dy = y[1:] - y[:-1]
qm = 0.5 * (qin[:-1] + qin[1:])
Qin = np.sum(qm * dy)
print('Total inflow with Q={:.0f} at t={:.1f} d equals {:.1f} m3/d'\
     .format(Q, t, Qin))


Total inflow with Q=1200 at t=200.0 d equals 1067.9 m3/d

Show the total inflow for many times but a constant well extraction

To to this, a loop it necessary to compute the inflow for each time at a time and collect the results.


In [17]:
Q = 1200 # m3/d

b = 125 # m, distance of well to river shore
x1, y1 = -b, 0 # location of well
x2, y2 = +b, 0 # location of mirror well

times = np.linspace(0, 50, 501) +0.0000001 # times

y = np.linspace(-1000, 1000, 801)
x = np.zeros_like(y)

r1 = np.sqrt((x - x1) ** 2 + (y - y1) ** 2)
r2 = np.sqrt((x - x2) ** 2 + (y - y2) ** 2)

alpha1 = np.arctan2(y, x - x1)
alpha2 = np.arctan2(y, x - x2)

Qin = np.zeros_like(times)
for i, t in enumerate(times):
    u1 = r1 ** 2 * S / (4 * kD * t)
    u2 = r2 ** 2 * S / (4 * kD * t)

    q1 = +Q / (2 * np.pi * r1) * np.exp(-u1)
    q2 = -Q / (2 * np.pi * r2) * np.exp(-u2)

    qx = q1 * np.cos(alpha1) + q2 * np.cos(alpha2)
    qy = q1 * np.sin(alpha1) + q2 * np.sin(alpha2)

    qin = qx
    
    Qin[i] = np.sum((y[:-1] - y[1:]) * 0.5 * (qin[:-1] +qin[1:]))
    

plt.title('Total inflow from river')
plt.xlabel('t [d]')
plt.ylabel('total inflow m3/d')
plt.ylim(0, Q)
plt.grid()
plt.plot(times, -Qin)
plt.show()


Everything combined, many times, with varying well extraction

Every winter the extration is Q0 and during the summer it is -Q0

We simulate 10 years using superosition in time. The winter injection will start each year in September and the summer extraction each year in april. Let's define the start times in days since the start of of the first year, assuming for simplicity that a month as always 30 days.


In [117]:
Q0 = 2400 # m3/d
kD = 500 # m2/d
S  = 0.2 # [-]

# all variable that are constant in time:

b = 1500 # m, distance of well to river shore
x1, y1 = -b, 0 # location of well
x2, y2 = +b, 0 # location of mirror well

# all parameters that are constant in time 
y = np.linspace(-1000, 1000, 81)
x = np.zeros_like(y)

dy = y[1:] - y[:-1]

r1 = np.sqrt((x - x1) ** 2 + (y - y1) ** 2)
r2 = np.sqrt((x - x2) ** 2 + (y - y2) ** 2)

alpha1 = np.arctan2(y, x - x1)
alpha2 = np.arctan2(y, x - x2)

The first time the injection is Q. Then at each time when extraction starts, is has -2Q And then each time when we switch back to injection the flow is +2Q

The flows to be used for superposition in time are

Month 9, 15, 21, 27, 33, 39, 45, ...

Flow Q, -2Q, 2Q, -2Q, 2Q, -2Q, 2Q, ...

Now define the times at which the total inflow is to be computed.


In [19]:
# Set the times when pumping switches
#              start, end, step
month = np.arange(9, 120, 6) # month numbers at which flow switches
                            #counting from Jan 1 in first year
Tsw = 30 * month   # t at which flow switches in days

# set the pumping flow at the switch points
Qsw = Q0 * 2 * (-1) ** np.arange(len(Tsw))
Qsw[0] = Q0

# Show them
print('{:>6} {:>6}'.format('Tsw[d]', 'Qsw'))
for tsw, Q in zip(Tsw, Qsw):
    print('{:6.0f} {:6.0f}'.format(tsw, Q))


Tsw[d]    Qsw
   270   2400
   450  -4800
   630   4800
   810  -4800
   990   4800
  1170  -4800
  1350   4800
  1530  -4800
  1710   4800
  1890  -4800
  2070   4800
  2250  -4800
  2430   4800
  2610  -4800
  2790   4800
  2970  -4800
  3150   4800
  3330  -4800
  3510   4800

Choose times at which we want to see the total inflow


In [68]:
# The small values prevents computing flows at the time the well starts
# t is now just a negilible time later.
#            start  end      step
times = np.arange(0, 30 * 120, 10) + 0.00001  # 10 years in days in 10 day steps


Q0 = 2400 # m3/d

b = 1500 # m, distance of well to river shore
x1, y1 = -b, 0 # location of well
x2, y2 = +b, 0 # location of mirror well

times = np.linspace(0, 30 * 120, 501) +0.0000001 # times

# points along the river
y = np.linspace(-1000, 1000, 801)
x = np.zeros_like(y)

r1 = np.sqrt((x - x1) ** 2 + (y - y1) ** 2)
r2 = np.sqrt((x - x2) ** 2 + (y - y2) ** 2)

alpha1 = np.arctan2(y, x - x1)
alpha2 = np.arctan2(y, x - x2)

Qps  = np.zeros_like(times)  # pumping station
Qriv = np.zeros_like(times)  # inflow from river
for i, t in enumerate(times):
    for tsw, qsw in zip(Tsw, Qsw):
        if t  > tsw:
            u1 = r1 ** 2 * S / (4 * kD * (t - tsw))
            u2 = r2 ** 2 * S / (4 * kD * (t - tsw))

            q1 = +qsw / (2 * np.pi * r1) * np.exp(-u1)
            q2 = +qsw / (2 * np.pi * r2) * np.exp(-u2)

            qx = q1 * np.cos(alpha1) - q2 * np.cos(alpha2)
            qy = q1 * np.sin(alpha1) - q2 * np.sin(alpha2)

            qin = qx
            
            Qps[i] = Qps[i]  + qsw
            Qriv[i]= Qriv[i] + np.sum((y[:-1] - y[1:]) * 0.5 * (qin[:-1] +qin[1:]))

plt.title('Total inflow from river')
plt.xlabel('t [d]')
plt.ylabel('total inflow m3/d')
plt.ylim(-2*Q0, 2*Q0)
plt.grid()
plt.plot(times, Qps, 'r')
plt.plot(times, Qriv, 'b')
plt.show()



In [59]:
Qsw


Out[59]:
array([ 2400, -4800,  4800, -4800,  4800, -4800,  4800, -4800,  4800,
       -4800,  4800, -4800,  4800, -4800,  4800, -4800,  4800, -4800,  4800])

q1


In [55]:
q1


Out[55]:
array([ 0.29599676,  0.29810235,  0.30022124,  0.30235351,  0.30449925,
        0.30665853,  0.30883143,  0.31101804,  0.31321843,  0.3154327 ,
        0.31766093,  0.31990319,  0.32215958,  0.32443018,  0.32671508,
        0.32901436,  0.33132811,  0.33365642,  0.33599939,  0.33835709,
        0.34072962,  0.34311707,  0.34551954,  0.34793711,  0.35036988,
        0.35281794,  0.35528139,  0.35776033,  0.36025485,  0.36276504,
        0.36529101,  0.36783286,  0.37039068,  0.37296458,  0.37555465,
        0.37816101,  0.38078374,  0.38342297,  0.38607879,  0.3887513 ,
        0.39144062,  0.39414686,  0.39687011,  0.3996105 ,  0.40236813,
        0.40514312,  0.40793557,  0.4107456 ,  0.41357333,  0.41641887,
        0.41928234,  0.42216386,  0.42506354,  0.4279815 ,  0.43091788,
        0.43387278,  0.43684634,  0.43983867,  0.44284991,  0.44588018,
        0.44892961,  0.45199833,  0.45508647,  0.45819416,  0.46132153,
        0.46446873,  0.46763588,  0.47082313,  0.47403061,  0.47725846,
        0.48050683,  0.48377586,  0.48706569,  0.49037647,  0.49370834,
        0.49706146,  0.50043597,  0.50383203,  0.5072498 ,  0.51068942,
        0.51415105,  0.51763486,  0.521141  ,  0.52466963,  0.52822092,
        0.53179504,  0.53539215,  0.53901241,  0.54265601,  0.54632312,
        0.5500139 ,  0.55372854,  0.55746722,  0.56123011,  0.5650174 ,
        0.56882927,  0.57266591,  0.57652751,  0.58041425,  0.58432635,
        0.58826398,  0.59222735,  0.59621665,  0.6002321 ,  0.60427388,
        0.60834222,  0.61243732,  0.6165594 ,  0.62070866,  0.62488533,
        0.62908962,  0.63332176,  0.63758197,  0.64187049,  0.64618753,
        0.65053334,  0.65490816,  0.65931221,  0.66374575,  0.66820902,
        0.67270226,  0.67722574,  0.6817797 ,  0.6863644 ,  0.69098011,
        0.69562708,  0.70030559,  0.70501591,  0.70975832,  0.71453308,
        0.71934049,  0.72418083,  0.72905439,  0.73396147,  0.73890235,
        0.74387735,  0.74888677,  0.75393091,  0.7590101 ,  0.76412464,
        0.76927487,  0.77446111,  0.77968369,  0.78494294,  0.79023921,
        0.79557284,  0.80094419,  0.8063536 ,  0.81180144,  0.81728806,
        0.82281385,  0.82837918,  0.83398443,  0.83962998,  0.84531622,
        0.85104356,  0.85681239,  0.86262313,  0.86847618,  0.87437198,
        0.88031095,  0.88629351,  0.89232012,  0.89839121,  0.90450725,
        0.91066868,  0.91687599,  0.92312963,  0.9294301 ,  0.93577787,
        0.94217345,  0.94861734,  0.95511005,  0.9616521 ,  0.96824402,
        0.97488633,  0.98157959,  0.98832435,  0.99512116,  1.0019706 ,
        1.00887325,  1.01582969,  1.02284051,  1.02990634,  1.03702777,
        1.04420545,  1.05143999,  1.05873206,  1.06608231,  1.07349141,
        1.08096003,  1.08848887,  1.09607862,  1.10373   ,  1.11144374,
        1.11922057,  1.12706124,  1.13496651,  1.14293716,  1.15097397,
        1.15907775,  1.16724931,  1.17548948,  1.18379911,  1.19217904,
        1.20063016,  1.20915334,  1.2177495 ,  1.22641955,  1.23516442,
        1.24398507,  1.25288246,  1.26185758,  1.27091143,  1.28004503,
        1.28925942,  1.29855566,  1.30793481,  1.31739799,  1.32694629,
        1.33658085,  1.34630284,  1.35611343,  1.36601381,  1.37600521,
        1.38608887,  1.39626605,  1.40653804,  1.41690616,  1.42737174,
        1.43793614,  1.44860076,  1.459367  ,  1.47023631,  1.48121015,
        1.49229001,  1.50347743,  1.51477395,  1.52618116,  1.53770066,
        1.54933411,  1.56108316,  1.57294954,  1.58493498,  1.59704125,
        1.60927016,  1.62162355,  1.63410331,  1.64671133,  1.65944959,
        1.67232006,  1.68532478,  1.69846581,  1.71174527,  1.7251653 ,
        1.7387281 ,  1.75243591,  1.766291  ,  1.78029569,  1.79445237,
        1.80876345,  1.8232314 ,  1.83785872,  1.85264799,  1.86760182,
        1.88272287,  1.89801388,  1.9134776 ,  1.92911687,  1.94493457,
        1.96093364,  1.97711709,  1.99348796,  2.01004939,  2.02680454,
        2.04375666,  2.06090905,  2.07826507,  2.09582818,  2.11360185,
        2.13158966,  2.14979525,  2.16822232,  2.18687463,  2.20575605,
        2.22487048,  2.2442219 ,  2.2638144 ,  2.28365209,  2.30373919,
        2.32407998,  2.34467883,  2.36554017,  2.38666852,  2.40806846,
        2.42974465,  2.45170185,  2.47394485,  2.49647856,  2.51930794,
        2.54243803,  2.56587394,  2.58962085,  2.61368402,  2.63806876,
        2.66278046,  2.68782457,  2.71320659,  2.73893209,  2.76500668,
        2.79143602,  2.81822582,  2.84538182,  2.8729098 ,  2.90081555,
        2.92910489,  2.95778364,  2.98685762,  3.01633265,  3.0462145 ,
        3.07650893,  3.10722166,  3.13835831,  3.16992445,  3.20192554,
        3.23436694,  3.26725386,  3.30059136,  3.3343843 ,  3.36863734,
        3.40335492,  3.43854117,  3.47419996,  3.51033479,  3.54694881,
        3.58404472,  3.62162478,  3.65969075,  3.69824378,  3.73728447,
        3.77681268,  3.81682758,  3.85732752,  3.89830998,  3.93977148,
        3.98170753,  4.02411254,  4.06697969,  4.1103009 ,  4.15406671,
        4.19826615,  4.24288668,  4.28791406,  4.33333224,  4.37912324,
        4.42526705,  4.47174149,  4.51852209,  4.56558196,  4.61289172,
        4.66041929,  4.70812985,  4.75598567,  4.80394606,  4.85196718,
        4.90000203,  4.94800035,  4.9959085 ,  5.04366947,  5.09122282,
        5.13850467,  5.18544772,  5.23198127,  5.27803131,  5.32352063,
        5.36836894,  5.41249304,  5.45580707,  5.49822273,  5.53964962,
        5.57999557,  5.61916704,  5.65706953,  5.69360809,  5.72868785,
        5.76221454,  5.79409509,  5.82423827,  5.85255532,  5.87896057,
        5.90337216,  5.92571264,  5.94590963,  5.96389648,  5.97961279,
        5.99300502,  6.00402696,  6.01264018,  6.01881437,  6.02252769,
        6.02376694,  6.02252769,  6.01881437,  6.01264018,  6.00402696,
        5.99300502,  5.97961279,  5.96389648,  5.94590963,  5.92571264,
        5.90337216,  5.87896057,  5.85255532,  5.82423827,  5.79409509,
        5.76221454,  5.72868785,  5.69360809,  5.65706953,  5.61916704,
        5.57999557,  5.53964962,  5.49822273,  5.45580707,  5.41249304,
        5.36836894,  5.32352063,  5.27803131,  5.23198127,  5.18544772,
        5.13850467,  5.09122282,  5.04366947,  4.9959085 ,  4.94800035,
        4.90000203,  4.85196718,  4.80394606,  4.75598567,  4.70812985,
        4.66041929,  4.61289172,  4.56558196,  4.51852209,  4.47174149,
        4.42526705,  4.37912324,  4.33333224,  4.28791406,  4.24288668,
        4.19826615,  4.15406671,  4.1103009 ,  4.06697969,  4.02411254,
        3.98170753,  3.93977148,  3.89830998,  3.85732752,  3.81682758,
        3.77681268,  3.73728447,  3.69824378,  3.65969075,  3.62162478,
        3.58404472,  3.54694881,  3.51033479,  3.47419996,  3.43854117,
        3.40335492,  3.36863734,  3.3343843 ,  3.30059136,  3.26725386,
        3.23436694,  3.20192554,  3.16992445,  3.13835831,  3.10722166,
        3.07650893,  3.0462145 ,  3.01633265,  2.98685762,  2.95778364,
        2.92910489,  2.90081555,  2.8729098 ,  2.84538182,  2.81822582,
        2.79143602,  2.76500668,  2.73893209,  2.71320659,  2.68782457,
        2.66278046,  2.63806876,  2.61368402,  2.58962085,  2.56587394,
        2.54243803,  2.51930794,  2.49647856,  2.47394485,  2.45170185,
        2.42974465,  2.40806846,  2.38666852,  2.36554017,  2.34467883,
        2.32407998,  2.30373919,  2.28365209,  2.2638144 ,  2.2442219 ,
        2.22487048,  2.20575605,  2.18687463,  2.16822232,  2.14979525,
        2.13158966,  2.11360185,  2.09582818,  2.07826507,  2.06090905,
        2.04375666,  2.02680454,  2.01004939,  1.99348796,  1.97711709,
        1.96093364,  1.94493457,  1.92911687,  1.9134776 ,  1.89801388,
        1.88272287,  1.86760182,  1.85264799,  1.83785872,  1.8232314 ,
        1.80876345,  1.79445237,  1.78029569,  1.766291  ,  1.75243591,
        1.7387281 ,  1.7251653 ,  1.71174527,  1.69846581,  1.68532478,
        1.67232006,  1.65944959,  1.64671133,  1.63410331,  1.62162355,
        1.60927016,  1.59704125,  1.58493498,  1.57294954,  1.56108316,
        1.54933411,  1.53770066,  1.52618116,  1.51477395,  1.50347743,
        1.49229001,  1.48121015,  1.47023631,  1.459367  ,  1.44860076,
        1.43793614,  1.42737174,  1.41690616,  1.40653804,  1.39626605,
        1.38608887,  1.37600521,  1.36601381,  1.35611343,  1.34630284,
        1.33658085,  1.32694629,  1.31739799,  1.30793481,  1.29855566,
        1.28925942,  1.28004503,  1.27091143,  1.26185758,  1.25288246,
        1.24398507,  1.23516442,  1.22641955,  1.2177495 ,  1.20915334,
        1.20063016,  1.19217904,  1.18379911,  1.17548948,  1.16724931,
        1.15907775,  1.15097397,  1.14293716,  1.13496651,  1.12706124,
        1.11922057,  1.11144374,  1.10373   ,  1.09607862,  1.08848887,
        1.08096003,  1.07349141,  1.06608231,  1.05873206,  1.05143999,
        1.04420545,  1.03702777,  1.02990634,  1.02284051,  1.01582969,
        1.00887325,  1.0019706 ,  0.99512116,  0.98832435,  0.98157959,
        0.97488633,  0.96824402,  0.9616521 ,  0.95511005,  0.94861734,
        0.94217345,  0.93577787,  0.9294301 ,  0.92312963,  0.91687599,
        0.91066868,  0.90450725,  0.89839121,  0.89232012,  0.88629351,
        0.88031095,  0.87437198,  0.86847618,  0.86262313,  0.85681239,
        0.85104356,  0.84531622,  0.83962998,  0.83398443,  0.82837918,
        0.82281385,  0.81728806,  0.81180144,  0.8063536 ,  0.80094419,
        0.79557284,  0.79023921,  0.78494294,  0.77968369,  0.77446111,
        0.76927487,  0.76412464,  0.7590101 ,  0.75393091,  0.74888677,
        0.74387735,  0.73890235,  0.73396147,  0.72905439,  0.72418083,
        0.71934049,  0.71453308,  0.70975832,  0.70501591,  0.70030559,
        0.69562708,  0.69098011,  0.6863644 ,  0.6817797 ,  0.67722574,
        0.67270226,  0.66820902,  0.66374575,  0.65931221,  0.65490816,
        0.65053334,  0.64618753,  0.64187049,  0.63758197,  0.63332176,
        0.62908962,  0.62488533,  0.62070866,  0.6165594 ,  0.61243732,
        0.60834222,  0.60427388,  0.6002321 ,  0.59621665,  0.59222735,
        0.58826398,  0.58432635,  0.58041425,  0.57652751,  0.57266591,
        0.56882927,  0.5650174 ,  0.56123011,  0.55746722,  0.55372854,
        0.5500139 ,  0.54632312,  0.54265601,  0.53901241,  0.53539215,
        0.53179504,  0.52822092,  0.52466963,  0.521141  ,  0.51763486,
        0.51415105,  0.51068942,  0.5072498 ,  0.50383203,  0.50043597,
        0.49706146,  0.49370834,  0.49037647,  0.48706569,  0.48377586,
        0.48050683,  0.47725846,  0.47403061,  0.47082313,  0.46763588,
        0.46446873,  0.46132153,  0.45819416,  0.45508647,  0.45199833,
        0.44892961,  0.44588018,  0.44284991,  0.43983867,  0.43684634,
        0.43387278,  0.43091788,  0.4279815 ,  0.42506354,  0.42216386,
        0.41928234,  0.41641887,  0.41357333,  0.4107456 ,  0.40793557,
        0.40514312,  0.40236813,  0.3996105 ,  0.39687011,  0.39414686,
        0.39144062,  0.3887513 ,  0.38607879,  0.38342297,  0.38078374,
        0.37816101,  0.37555465,  0.37296458,  0.37039068,  0.36783286,
        0.36529101,  0.36276504,  0.36025485,  0.35776033,  0.35528139,
        0.35281794,  0.35036988,  0.34793711,  0.34551954,  0.34311707,
        0.34072962,  0.33835709,  0.33599939,  0.33365642,  0.33132811,
        0.32901436,  0.32671508,  0.32443018,  0.32215958,  0.31990319,
        0.31766093,  0.3154327 ,  0.31321843,  0.31101804,  0.30883143,
        0.30665853,  0.30449925,  0.30235351,  0.30022124,  0.29810235,
        0.29599676])

In [44]:
times[-1]


Out[44]:
50.000000100000001

In [ ]: