# Path: topoflow/components/satzone_base.py
# class satzone_component( infil_base.infil_component ):
#     def set_constants(self):
#     def initialize(self, cfg_file=None, mode="nondriver",
#                    SILENT=False):
#     def update(self, dt=-1.0):
#     def finalize(self):
#     def set_computed_input_vars(self):
#     def initialize_layer_vars(self):
#     def initialize_computed_vars(self):
#     def initialize_water_table(self):
#     def initialize_wetted_thicknesses(self):
#     def initialize_d8_vars(self):
#     def update_Sh(self):
#     def update_Q_gw(self):
#     def update_seep_rate(self):
#     def update_GW_integral(self):
#     def update_top_layer_for_ET(self):
#     def update_water_table(self):
#     def open_input_files(self):
#     def read_input_files(self):
#     def close_input_files(self):
#     def update_outfile_names(self):
#     def open_output_files(self):
#     def write_output_files(self, time_seconds=None):
#     def close_output_files(self):
#     def save_grids(self):
#     def save_pixel_values(self):
#     def get_total_darcy_layer_flow(self, cv):
# def Darcy_Flow(K, S, dw, y):
#         UPDATE_DEPTH = False
#             UPDATE_DEPTH = True
#             UPDATE_DEPTH = True
#             SCALAR_POROSITY = (np.size(p0) == 1)  # (Always True now)
#                 SCALAR_THICKNESS = (np.size( tk ) == 1)
#                 SCALAR_POROSITY  = (np.size( pk ) == 1)
#                 SCALAR_THICKNESS = (np.size( tk ) == 1)
#                 SCALAR_POROSITY  = (np.size( pk ) == 1)
#     Q = K * S * dw * y


import numpy as np
import os
from topoflow.components import satzone_base
#      get_attribute()          # (10/26/11)
#      get_input_var_names()    # (5/16/12, Bolton)
#      get_output_var_names()   # (5/16/12, Bolton)
#      get_var_name()           # (5/16/12, Bolton)
#      get_var_units()          # (5/16/12, Bolton)
#      ------------------------------------------------------------     
#      Move all "update_*" methods from satzone_base.py to here ?
#      ------------------------------------------------------------    
#
#  Functions:   (commented out)
#      Total_Darcy_Layer_Flow_VK()
#      Total_Subsurface_Flow()
#      Darcy_Layer_Seep_Rate()
#
#-----------------------------------------------------------------------



#-----------------------------------------------------------------------
class satzone_component( satzone_base.satzone_component ):

    _att_map = {
        'model_name':         'TopoFlow_Saturated_Zone_Darcy_Layers',
        'version':            '3.1',        
        'author_name':        'Scott D. Peckham',
        'grid_type':          'uniform',
        'time_step_type':     'fixed',
        'step_method':        'explicit',
        #-------------------------------------------------------------
        'comp_name':          'SatZoneDarcyLayers',

# Path: topoflow/components/satzone_base.py
# class satzone_component( infil_base.infil_component ):
#     def set_constants(self):
#     def initialize(self, cfg_file=None, mode="nondriver",
#                    SILENT=False):
#     def update(self, dt=-1.0):
#     def finalize(self):
#     def set_computed_input_vars(self):
#     def initialize_layer_vars(self):
#     def initialize_computed_vars(self):
#     def initialize_water_table(self):
#     def initialize_wetted_thicknesses(self):
#     def initialize_d8_vars(self):
#     def update_Sh(self):
#     def update_Q_gw(self):
#     def update_seep_rate(self):
#     def update_GW_integral(self):
#     def update_top_layer_for_ET(self):
#     def update_water_table(self):
#     def open_input_files(self):
#     def read_input_files(self):
#     def close_input_files(self):
#     def update_outfile_names(self):
#     def open_output_files(self):
#     def write_output_files(self, time_seconds=None):
#     def close_output_files(self):
#     def save_grids(self):
#     def save_pixel_values(self):
#     def get_total_darcy_layer_flow(self, cv):
# def Darcy_Flow(K, S, dw, y):
#         UPDATE_DEPTH = False
#             UPDATE_DEPTH = True
#             UPDATE_DEPTH = True
#             SCALAR_POROSITY = (np.size(p0) == 1)  # (Always True now)
#                 SCALAR_THICKNESS = (np.size( tk ) == 1)
#                 SCALAR_POROSITY  = (np.size( pk ) == 1)
#                 SCALAR_THICKNESS = (np.size( tk ) == 1)
#                 SCALAR_POROSITY  = (np.size( pk ) == 1)
#     Q = K * S * dw * y


# Path: topoflow/components/satzone_darcy_layers.py
import numpy as np
import os
from topoflow.components import satzone_base

#      get_attribute()          # (10/26/11)
#      get_input_var_names()    # (5/16/12, Bolton)
#      get_output_var_names()   # (5/16/12, Bolton)
#      get_var_name()           # (5/16/12, Bolton)
#      get_var_units()          # (5/16/12, Bolton)
#      ------------------------------------------------------------     
#      Move all "update_*" methods from satzone_base.py to here ?
#      ------------------------------------------------------------    
#
#  Functions:   (commented out)
#      Total_Darcy_Layer_Flow_VK()
#      Total_Subsurface_Flow()
#      Darcy_Layer_Seep_Rate()
#
#-----------------------------------------------------------------------



#-----------------------------------------------------------------------
class satzone_component( satzone_base.satzone_component ):

    _att_map = {
        'model_name':         'TopoFlow_Saturated_Zone_Darcy_Layers',
        'version':            '3.1',        
        'author_name':        'Scott D. Peckham',
        'grid_type':          'uniform',
        'time_step_type':     'fixed',
        'step_method':        'explicit',
        #-------------------------------------------------------------
        'comp_name':          'SatZoneDarcyLayers',

        'model_family':       'TopoFlow',