FLASH

REQUIRED INPUT


In [11]:
elev = 555.53           # Elevation of the measuring point (ft)
nzones = 3              # Number for flow zones
Dw = 6                  # Well diameter (inches)
drawdown = 3.5          # Drawdown (ft)
Hwa = 4.62              # Depth to ambient water level (ft)
bot_casing = 10         # Depth to bottom of casing (ft)
bot_well = 140          # Depth at bottom of the well (ft)
Ro = 95                 # Radius of influence (ft)
Ttot = 26               # Total Transmissivity (square ft/day)

FRACTURE INFORMATION


In [2]:
# The number of fractures can be changes by editing the lists of properties. 
# All lists must be the same length.
depth = np.array([35.0, 45.0, 65.0])                # Fracture depth (ft)
Qamb = np.array([0.0, 0.02, 0.02])                  # Ambient flow (GPM)
Qstress = np.array([0.5, 0.5, 0.23])                # Stressed flow (GPM)
ff_h = np.array([547.41, 550.91, 551.24])           # Farfield head (ft)

FIELD DATA


In [3]:
# Edit lists to add your field data

# Ambient Flow Measurement Depth (ft)
Za = [21, 33.5, 37.0, 39.1, 50.0, 63.0, 69.5, 89.1, 100.0, 109.0]
# Ambient Discharge, Q, (GPM)
Qa = [0.0, 0.0, 0.019, 0.017, 0.02, 0.019, 0, 0, 0, 0]
# Pumped Flow Measurement Depth (ft)
Zs = [21.3, 35.5, 37, 50, 64, 66, 82, 100, 125]
# Pumped Discharge (GPM)
Qs = [0.33, 0.50, 0.49, 0.25, 0.23, 0, 0, 0, 0]

# Check that the parameter lists are the same length (easy mistake to make)
assert len(Za) == len(Qa), "Ambient flow vectors not the same length"
assert len(Zs) == len(Qs), "Pumping flow vectors not the same length"

Model Parameters

To run the forward model mandually, adjust the parameters below and re-execute the parameter cell and the plotting cell below it.


In [25]:
from IPython.html.widgets import interact, interactive, fixed
from IPython.html import widgets
import flashpy
reload(flashpy)
Tfac = [0.42, 0.54, 0.04]           # Tfactor (square ft/day)
del_h = [0.33, 0.0, -3.5]           # Difference between far-field head and ambient water levels (ft)
#flashpy.model(Tfac, del_h, depth, Qa, Qs, Za, Zs, Ttot, Ro, Dw, drawdown, bot_casing, bot_well)
i = interact(flashpy.model, Tfac = [0.42, 0.54, 0.04], del_h = [0.33, 0.0, -3.5], depth = fixed(depth),
             Qa = fixed(Qa), Qs = fixed(Qs), Za = fixed(Za), Zs = fixed(Zs), Ttot = fixed(Ttot), Ro = fixed(Ro),
             Dw = fixed(Dw), drawdown = fixed(drawdown), bot_casing = fixed(bot_casing), bot_well = fixed(bot_well)
             )


---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-25-9fda21c0db94> in <module>()
      8 i = interact(flashpy.model, Tfac = [0.42, 0.54, 0.04], del_h = [0.33, 0.0, -3.5], depth = fixed(depth),
      9              Qa = fixed(Qa), Qs = fixed(Qs), Za = fixed(Za), Zs = fixed(Zs), Ttot = fixed(Ttot), Ro = fixed(Ro),
---> 10              Dw = fixed(Dw), drawdown = fixed(drawdown), bot_casing = fixed(bot_casing), bot_well = fixed(bot_well)
     11              )

/Applications/Canopy.app/appdata/canopy-1.5.2.2785.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/IPython/html/widgets/interaction.pyc in interact(__interact_f, **kwargs)
    234         #        ...
    235         f = __interact_f
--> 236         w = interactive(f, **kwargs)
    237         f.widget = w
    238         display(w)

/Applications/Canopy.app/appdata/canopy-1.5.2.2785.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/IPython/html/widgets/interaction.pyc in interactive(__interact_f, **kwargs)
    189     getcallargs(f, **{n:v for n,v,_ in new_kwargs})
    190     # Now build the widgets from the abbreviations.
--> 191     kwargs_widgets.extend(_widgets_from_abbreviations(new_kwargs))
    192 
    193     # This has to be done as an assignment, not using container.children.append,

/Applications/Canopy.app/appdata/canopy-1.5.2.2785.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/IPython/html/widgets/interaction.pyc in _widgets_from_abbreviations(seq)
    166     result = []
    167     for name, abbrev, default in seq:
--> 168         widget = _widget_from_abbrev(abbrev, default)
    169         if not widget.description:
    170             widget.description = name

/Applications/Canopy.app/appdata/canopy-1.5.2.2785.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/IPython/html/widgets/interaction.pyc in _widget_from_abbrev(abbrev, default)
    116         return abbrev
    117 
--> 118     widget = _widget_abbrev(abbrev)
    119     if default is not empty and isinstance(abbrev, (list, tuple, dict)):
    120         # if it's not a single-value abbreviation,

/Applications/Canopy.app/appdata/canopy-1.5.2.2785.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/IPython/html/widgets/interaction.pyc in _widget_abbrev(o)
    101             step = o[2]
    102             if step <= 0:
--> 103                 raise ValueError("step must be >= 0, not %r" % step)
    104             min, max, value = _get_min_max_value(o[0], o[1], step=step)
    105             if all(isinstance(_, int) for _ in o):

ValueError: step must be >= 0, not -3.5

In [ ]: