GRASS Programmer's Manual
6.4.2(2012)
|
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