GRASS Programmer's Manual  6.4.2(2012)
N_gwflow.h
Go to the documentation of this file.
00001 
00002 /*****************************************************************************
00003 *
00004 * MODULE:       Grass PDE Numerical Library
00005 * AUTHOR(S):    Soeren Gebbert, Berlin (GER) Dec 2006
00006 *               soerengebbert <at> gmx <dot> de
00007 *               
00008 * PURPOSE:      groundwater flow in porous media 
00009 *               part of the gpde library
00010 *
00011 * COPYRIGHT:    (C) 2000 by the GRASS Development Team
00012 *
00013 *               This program is free software under the GNU General Public
00014 *               License (>=v2). Read the file COPYING that comes with GRASS
00015 *               for details.
00016 *
00017 *****************************************************************************/
00018 
00019 #ifndef _N_GWFLOW_H_
00020 #define _N_GWFLOW_H_
00021 #include "N_pde.h"
00022 
00023 #define N_GW_CONFINED 0         /*confined groundwater */
00024 #define N_GW_UNCONFINED 1       /*unconfined groundwater */
00025 
00026 #define N_GW_DRY_CELL 0         /*a dry cell */
00027 #define N_GW_SURFACE_CELL 1     /*a surface cell */
00028 #define N_GW_NORMAL_CELL 2      /*a normal wet cell */
00029 
00034 typedef struct
00035 {
00036     N_array_3d *phead;          
00037     N_array_3d *phead_start;    
00038     N_array_3d *hc_x;           
00039     N_array_3d *hc_y;           
00040     N_array_3d *hc_z;           
00041     N_array_3d *q;              
00042     N_array_2d *r;              
00043     N_array_3d *s;              
00044     N_array_3d *nf;             
00046     /*river */
00047     N_array_3d *river_leak;     
00048     N_array_3d *river_head;     
00049     N_array_3d *river_bed;      
00051     /*drainage */
00052     N_array_3d *drain_leak;     
00053     N_array_3d *drain_bed;      
00055     N_array_3d *status;         
00056     N_array_3d *drycells;       
00058     double dt;                  
00060 } N_gwflow_data3d;
00061 
00066 typedef struct
00067 {
00068     N_array_2d *phead;          
00069     N_array_2d *phead_start;    
00070     N_array_2d *hc_x;           
00071     N_array_2d *hc_y;           
00072     N_array_2d *q;              
00073     N_array_2d *r;              
00074     N_array_2d *s;              
00075     N_array_2d *nf;             
00077     /*river */
00078     N_array_2d *river_leak;     
00079     N_array_2d *river_head;     
00080     N_array_2d *river_bed;      
00082     /*drainage */
00083     N_array_2d *drain_leak;     
00084     N_array_2d *drain_bed;      
00087     N_array_2d *top;            
00088     N_array_2d *bottom;         
00090     N_array_2d *status;         
00091     N_array_2d *drycells;       
00093     double dt;                  
00094     int gwtype;                 
00096 } N_gwflow_data2d;
00097 
00098 extern N_data_star *N_callback_gwflow_3d(void *gwdata, N_geom_data * geom,
00099                                          int col, int row, int depth);
00100 extern N_data_star *N_callback_gwflow_2d(void *gwdata, N_geom_data * geom,
00101                                          int col, int row);
00102 extern N_gwflow_data3d *N_alloc_gwflow_data3d(int cols, int rows, int depths,
00103                                               int river, int drain);
00104 extern N_gwflow_data2d *N_alloc_gwflow_data2d(int cols, int rows, int river,
00105                                               int drain);
00106 extern void N_free_gwflow_data3d(N_gwflow_data3d * data);
00107 extern void N_free_gwflow_data2d(N_gwflow_data2d * data);
00108 #endif
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines