GRASS 8 Programmer's Manual
8.5.0(2026)-8d6ceba290
Toggle main menu visibility
Loading...
Searching...
No Matches
N_gwflow.h
Go to the documentation of this file.
1
/*****************************************************************************
2
*
3
* MODULE: Grass PDE Numerical Library
4
* AUTHOR(S): Soeren Gebbert, Berlin (GER) Dec 2006
5
* soerengebbert <at> gmx <dot> de
6
*
7
* PURPOSE: groundwater flow in porous media
8
* part of the gpde library
9
*
10
* COPYRIGHT: (C) 2000 by the GRASS Development Team
11
*
12
* This program is free software under the GNU General Public
13
* License (>=v2). Read the file COPYING that comes with GRASS
14
* for details.
15
*
16
*****************************************************************************/
17
18
#ifndef _N_GWFLOW_H_
19
#define _N_GWFLOW_H_
20
#include "
N_pde.h
"
21
#include <math.h>
22
23
#define N_GW_CONFINED 0
/*confined groundwater */
24
#define N_GW_UNCONFINED 1
/*unconfined groundwater */
25
26
#define N_GW_DRY_CELL 0
/*a dry cell */
27
#define N_GW_SURFACE_CELL 1
/*a surface cell */
28
#define N_GW_NORMAL_CELL 2
/*a normal wet cell */
29
30
/*!
31
* \brief This data structure contains all data needed to compute the
32
* groundwater mass balance in three dimension
33
* */
34
typedef
struct
{
35
N_array_3d
*
phead
;
/*!piezometric head [m] */
36
N_array_3d
*
phead_start
;
/*!start conditions [m] */
37
N_array_3d
*
hc_x
;
/*!x part of the hydraulic conductivity tensor [m/s] */
38
N_array_3d
*
hc_y
;
/*!y part of the hydraulic conductivity tensor [m/s] */
39
N_array_3d
*
hc_z
;
/*!z part of the hydraulic conductivity tensor [m/s] */
40
N_array_3d
*
q
;
/*!sources and sinks [m^3/s] */
41
N_array_2d
*
r
;
/*!recharge at the top of the gw leayer [1/s] */
42
N_array_3d
*
s
;
/*!specific yield [1/m] */
43
N_array_3d
*
nf
;
/*!effective porosity [-] */
44
45
/*river */
46
N_array_3d
*
river_leak
;
/*!Leakage of the river bed [1/s] */
47
N_array_3d
*
river_head
;
/*!Waterlevel of the river [m] */
48
N_array_3d
*
river_bed
;
/*!Bed of the river [m] */
49
50
/*drainage */
51
N_array_3d
*
drain_leak
;
/*!Leakage of the drainage bed [1/s] */
52
N_array_3d
*
drain_bed
;
/*!Bed of the drainage [m] */
53
54
N_array_3d
*
status
;
/*!active/inactive/dirichlet cell status */
55
N_array_3d
*
drycells
;
/*!array of dry cells */
56
57
double
dt
;
/*!calculation time [s] */
58
59
}
N_gwflow_data3d
;
60
61
/*!
62
* \brief This data structure contains all data needed to compute the
63
* groundwater mass balance in two dimension
64
* */
65
typedef
struct
{
66
N_array_2d
*
phead
;
/*!piezometric head [m] */
67
N_array_2d
*
phead_start
;
/*!start conditions [m] */
68
N_array_2d
*
hc_x
;
/*!x part of the hydraulic conductivity tensor [m/s] */
69
N_array_2d
*
hc_y
;
/*!y part of the hydraulic conductivity tensor [m/s] */
70
N_array_2d
*
q
;
/*!sources and sinks [m^3/s] */
71
N_array_2d
*
r
;
/*!recharge at the top of the gw leayer [1/s] */
72
N_array_2d
*
s
;
/*!specific yield [1/m] */
73
N_array_2d
*
nf
;
/*!effective porosity [-] */
74
75
/*river */
76
N_array_2d
*
river_leak
;
/*!Leakage of the river bed [1/s] */
77
N_array_2d
*
river_head
;
/*!Waterlevel of the river [m] */
78
N_array_2d
*
river_bed
;
/*!Bed of the river [m] */
79
80
/*drainage */
81
N_array_2d
*
drain_leak
;
/*!Leakage of the drainage bed [1/s] */
82
N_array_2d
*
drain_bed
;
/*!Bed of the drainage */
83
84
N_array_2d
*
top
;
/*!top surface of the quifer [m] */
85
N_array_2d
*
bottom
;
/*!bottom of the aquifer [m] */
86
87
N_array_2d
*
status
;
/*!active/inactive/dirichlet cell status */
88
N_array_2d
*
drycells
;
/*!array of dry cells */
89
90
double
dt
;
/*!calculation time */
91
int
gwtype
;
/*!Which type of groundwater, N_GW_CONFINED or N_GW_UNCONFIED */
92
93
}
N_gwflow_data2d
;
94
95
extern
N_data_star
*
N_callback_gwflow_3d
(
void
*gwdata,
N_geom_data
*geom,
96
int
col,
int
row,
int
depth);
97
extern
N_data_star
*
N_callback_gwflow_2d
(
void
*gwdata,
N_geom_data
*geom,
98
int
col,
int
row);
99
extern
void
N_gwflow_3d_calc_water_budget
(
N_gwflow_data3d
*data,
100
N_geom_data
*geom,
101
N_array_3d
*budget);
102
extern
void
N_gwflow_2d_calc_water_budget
(
N_gwflow_data2d
*data,
103
N_geom_data
*geom,
104
N_array_2d
*balance);
105
extern
N_gwflow_data3d
*
N_alloc_gwflow_data3d
(
int
cols,
int
rows,
int
depths,
106
int
river,
int
drain);
107
extern
N_gwflow_data2d
*
N_alloc_gwflow_data2d
(
int
cols,
int
rows,
int
river,
108
int
drain);
109
extern
void
N_free_gwflow_data3d
(
N_gwflow_data3d
*data);
110
extern
void
N_free_gwflow_data2d
(
N_gwflow_data2d
*data);
111
#endif
N_callback_gwflow_2d
N_data_star * N_callback_gwflow_2d(void *gwdata, N_geom_data *geom, int col, int row)
This callback function creates the mass balance of a 5 point star.
Definition
n_gwflow.c:476
N_gwflow_3d_calc_water_budget
void N_gwflow_3d_calc_water_budget(N_gwflow_data3d *data, N_geom_data *geom, N_array_3d *budget)
This function computes the water budget of the entire groundwater.
Definition
n_gwflow.c:373
N_alloc_gwflow_data2d
N_gwflow_data2d * N_alloc_gwflow_data2d(int cols, int rows, int river, int drain)
Allocate memory for the groundwater calculation data structure in 2 dimensions.
Definition
n_gwflow.c:151
N_gwflow_2d_calc_water_budget
void N_gwflow_2d_calc_water_budget(N_gwflow_data2d *data, N_geom_data *geom, N_array_2d *balance)
This function computes the water budget of the entire groundwater.
Definition
n_gwflow.c:659
N_free_gwflow_data3d
void N_free_gwflow_data3d(N_gwflow_data3d *data)
Release the memory of the groundwater flow data structure in three dimensions.
Definition
n_gwflow.c:91
N_alloc_gwflow_data3d
N_gwflow_data3d * N_alloc_gwflow_data3d(int cols, int rows, int depths, int river, int drain)
Allocate memory for the groundwater calculation data structure in 3 dimensions.
Definition
n_gwflow.c:39
N_free_gwflow_data2d
void N_free_gwflow_data2d(N_gwflow_data2d *data)
Release the memory of the groundwater flow data structure in two dimensions.
Definition
n_gwflow.c:202
N_callback_gwflow_3d
N_data_star * N_callback_gwflow_3d(void *gwdata, N_geom_data *geom, int col, int row, int depth)
This callback function creates the mass balance of a 7 point star.
Definition
n_gwflow.c:267
N_pde.h
N_array_2d
Definition
N_pde.h:132
N_array_3d
Definition
N_pde.h:175
N_data_star
Matrix entries for a mass balance 5/7/9 star system.
Definition
N_pde.h:295
N_geom_data
Geometric information about the structured grid.
Definition
N_pde.h:101
N_gwflow_data2d
This data structure contains all data needed to compute the groundwater mass balance in two dimension...
Definition
N_gwflow.h:65
N_gwflow_data2d::hc_y
N_array_2d * hc_y
Definition
N_gwflow.h:69
N_gwflow_data2d::nf
N_array_2d * nf
Definition
N_gwflow.h:73
N_gwflow_data2d::top
N_array_2d * top
Definition
N_gwflow.h:84
N_gwflow_data2d::drain_leak
N_array_2d * drain_leak
Definition
N_gwflow.h:81
N_gwflow_data2d::bottom
N_array_2d * bottom
Definition
N_gwflow.h:85
N_gwflow_data2d::phead_start
N_array_2d * phead_start
Definition
N_gwflow.h:67
N_gwflow_data2d::river_leak
N_array_2d * river_leak
Definition
N_gwflow.h:76
N_gwflow_data2d::s
N_array_2d * s
Definition
N_gwflow.h:72
N_gwflow_data2d::hc_x
N_array_2d * hc_x
Definition
N_gwflow.h:68
N_gwflow_data2d::r
N_array_2d * r
Definition
N_gwflow.h:71
N_gwflow_data2d::drycells
N_array_2d * drycells
Definition
N_gwflow.h:88
N_gwflow_data2d::dt
double dt
Definition
N_gwflow.h:90
N_gwflow_data2d::drain_bed
N_array_2d * drain_bed
Definition
N_gwflow.h:82
N_gwflow_data2d::q
N_array_2d * q
Definition
N_gwflow.h:70
N_gwflow_data2d::gwtype
int gwtype
Definition
N_gwflow.h:91
N_gwflow_data2d::river_bed
N_array_2d * river_bed
Definition
N_gwflow.h:78
N_gwflow_data2d::river_head
N_array_2d * river_head
Definition
N_gwflow.h:77
N_gwflow_data2d::phead
N_array_2d * phead
Definition
N_gwflow.h:66
N_gwflow_data2d::status
N_array_2d * status
Definition
N_gwflow.h:87
N_gwflow_data3d
This data structure contains all data needed to compute the groundwater mass balance in three dimensi...
Definition
N_gwflow.h:34
N_gwflow_data3d::phead
N_array_3d * phead
Definition
N_gwflow.h:35
N_gwflow_data3d::hc_z
N_array_3d * hc_z
Definition
N_gwflow.h:39
N_gwflow_data3d::phead_start
N_array_3d * phead_start
Definition
N_gwflow.h:36
N_gwflow_data3d::hc_x
N_array_3d * hc_x
Definition
N_gwflow.h:37
N_gwflow_data3d::drain_leak
N_array_3d * drain_leak
Definition
N_gwflow.h:51
N_gwflow_data3d::status
N_array_3d * status
Definition
N_gwflow.h:54
N_gwflow_data3d::drycells
N_array_3d * drycells
Definition
N_gwflow.h:55
N_gwflow_data3d::drain_bed
N_array_3d * drain_bed
Definition
N_gwflow.h:52
N_gwflow_data3d::river_bed
N_array_3d * river_bed
Definition
N_gwflow.h:48
N_gwflow_data3d::river_head
N_array_3d * river_head
Definition
N_gwflow.h:47
N_gwflow_data3d::s
N_array_3d * s
Definition
N_gwflow.h:42
N_gwflow_data3d::dt
double dt
Definition
N_gwflow.h:57
N_gwflow_data3d::r
N_array_2d * r
Definition
N_gwflow.h:41
N_gwflow_data3d::q
N_array_3d * q
Definition
N_gwflow.h:40
N_gwflow_data3d::hc_y
N_array_3d * hc_y
Definition
N_gwflow.h:38
N_gwflow_data3d::nf
N_array_3d * nf
Definition
N_gwflow.h:43
N_gwflow_data3d::river_leak
N_array_3d * river_leak
Definition
N_gwflow.h:46
gpde
N_gwflow.h
Generated on
for GRASS 8 Programmer's Manual by
1.17.0