Flow is a Envision Extension that provides a very flexible framework for hydrologic modeling. Similar to Envision, is supports the idea of “plug-ins”, DLL’s that extend functionality. Flow provides a number of elements of hydrological process representation, including geometric representation of terrestrial and aquatic (riverine) datasets used in the hydrologic model, topology, simulation control, data management, and default implementations of important hydrologic processes. While providing for basic hydrologic connectivity (described in detail below), the framework supports the concept of externally defined fluxes for representing sources or sinks at various points in the hydrologic system, i.e. “straws” that the can add, remove, or transfer water at specific locations. In addition, if the various internal implementations of hydrologic processes are insufficient for a given application, the can be globally or locally overridden. Input is an Xml file specifying definitions of catchments, hydrologic response units (HRU), and river/stream features, externally-define fluxes and process overrides, and other information needed to define a specific hydrological model.

Flow Model Structures

The Flow process and individual Flow elements are defined in an Xml input file that is specified in the Project (.envx) file. To include a Flow-based model in an application, include the <autonomous_process> element shown below in the <autonomous_process> section of the Project file. Flow requires an Xml input file - this is specified using the initInfo attribute. This Flow entry corresponds to the Flow file given above. Note that the specified file must be either in the ENVISION executable directory, the Study Area directory (where the project file (*.envx) resides) or specified as a fully-qualified path.

{myproject}.envx
<flow_model>
    ...
    <autonomous_processes>
       ...
       <autonomous_process 
           name         ='My Hydro Model' 
           path         ='flow.dll' 
           id           ='0' 
           use          ='1' 
           timing       ='0' 
           initInfo   ='flow_input.xml' />
       ...
    </autonomous_processes>
    ....
</flow_model>

Configuration options for the Flow Xml input file are available here.