well_solution(time, rad, storage, transmissivity, rate=-0.0001, h_bound=0.0, struc_grid=True)[source]

The classical Theis solution.

The classical Theis solution for transient flow under a pumping condition in a confined and homogeneous aquifer.

This solution was presented in ‘’Theis 1935’’[R9].

  • time (numpy.ndarray) – Array with all time-points where the function should be evaluated.

  • rad (numpy.ndarray) – Array with all radii where the function should be evaluated.

  • storage (float) – Storage of the aquifer.

  • transmissivity (float) – Transmissivity of the aquifer.

  • rate (float, optional) – Pumpingrate at the well. Default: -1e-4

  • h_bound (float, optional) – Reference head at the outer boundary at infinity. Default: 0.0

  • struc_grid (bool, optional) – If this is set to “False”, the “rad” and “time” array will be merged and interpreted as single, r-t points. In this case they need to have the same shapes. Otherwise a structured r-t grid is created. Default: True


head – Array with all heads at the given radii and time-points.

Return type





Theis, C., ‘’The relation between the lowering of the piezometric surface and the rate and duration of discharge of a well using groundwater storage’’, Trans. Am. Geophys. Union, 16, 519-524, 1935


The parameters rad, T and S will be checked for positivity. If you want to use cartesian coordiantes, just use the formula r = sqrt(x**2 + y**2)


>>> well_solution([10,100], [1,2,3], 0.001, 0.001, -0.001)
array([[-0.24959541, -0.14506368, -0.08971485],
       [-0.43105106, -0.32132823, -0.25778313]])