GRASS Programmer's Manual
6.4.2(2012)
Main Page
Related Pages
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
N_solute_transport.h
Go to the documentation of this file.
1
2
/*****************************************************************************
3
*
4
* MODULE: Grass PDE Numerical Library
5
* AUTHOR(S): Soeren Gebbert, Berlin (GER) Dec 2006
6
* soerengebbert <at> gmx <dot> de
7
*
8
* PURPOSE: solute transport in porous media
9
* part of the gpde library
10
*
11
* COPYRIGHT: (C) 2000 by the GRASS Development Team
12
*
13
* This program is free software under the GNU General Public
14
* License (>=v2). Read the file COPYING that comes with GRASS
15
* for details.
16
*
17
*****************************************************************************/
18
19
#include "
N_pde.h
"
20
21
#ifndef _N_SOLUTE_TRANSPORT_H_
22
#define _N_SOLUTE_TRANSPORT_H_
23
24
25
typedef
struct
26
{
27
N_array_3d
*
c
;
/*concentration */
28
N_array_3d
*
c_start
;
/*concentration at start */
29
N_array_3d
*
diff_x
;
/*x part of the diffusion tensor */
30
N_array_3d
*
diff_y
;
/*y part of the diffusion tensor */
31
N_array_3d
*
diff_z
;
/*z part of the diffusion tensor */
32
N_array_3d
*
nf
;
/*effective porosity */
33
N_array_3d
*
cs
;
/*concentration sources and sinks */
34
N_array_3d
*
q
;
/*well sources and sinks */
35
N_array_3d
*
R
;
/*retardation */
36
N_array_3d
*
cin
;
/*concentration input from wells */
37
38
N_gradient_field_3d
*
grad
;
/*velocity field */
39
40
N_array_3d
*
status
;
/*active/inactive/dirichlet cell status */
41
42
N_array_3d
*
disp_xx
;
/*x part of the dispersivity tensor */
43
N_array_3d
*
disp_yy
;
/*x part of the dispersivity tensor */
44
N_array_3d
*
disp_zz
;
/*x part of the dispersivity tensor */
45
N_array_3d
*
disp_xy
;
/*xy part of the dispersivity tensor */
46
N_array_3d
*
disp_xz
;
/*xz part of the dispersivity tensor */
47
N_array_3d
*
disp_yz
;
/*yz part of the dispersivity tensor */
48
49
double
dt
;
/*calculation time */
50
double
al,
at
;
/*dispersivity length longditudinal and transversal */
51
int
stab
;
/*stabilization criteria */
52
53
}
N_solute_transport_data3d
;
54
55
56
typedef
struct
57
{
58
N_array_2d
*
c
;
/*concentration */
59
N_array_2d
*
c_start
;
/*concentration at start */
60
N_array_2d
*
diff_x
;
/*x part of the diffusion tensor */
61
N_array_2d
*
diff_y
;
/*y part of the diffusion tensor */
62
N_array_2d
*
nf
;
/*effective porosity */
63
N_array_2d
*
cs
;
/*concentration sources and sinks */
64
N_array_2d
*
q
;
/*well sources and sinks */
65
N_array_2d
*
R
;
/*retardation */
66
N_array_2d
*
cin
;
/*concentration */
67
68
N_gradient_field_2d
*
grad
;
/*velocity field */
69
70
N_array_2d
*
status
;
/*active/inactive/dirichlet cell status */
71
N_array_2d
*
top
;
/* top surface of the aquifer */
72
N_array_2d
*
bottom
;
/* bottom surface of the aquifer */
73
74
N_array_2d
*
disp_xx
;
/*x part of the dispersivity tensor */
75
N_array_2d
*
disp_yy
;
/*x part of the dispersivity tensor */
76
N_array_2d
*
disp_xy
;
/*xy part of the dispersivity tensor */
77
78
double
dt
;
/*calculation time */
79
double
al,
at
;
/*dispersivity length longditudinal and transversal */
80
int
stab
;
/*stabilization criteria */
81
82
}
N_solute_transport_data2d
;
83
84
85
extern
N_data_star
*
N_callback_solute_transport_3d
(
void
*solutedata,
86
N_geom_data
* geom,
87
int
col,
int
row,
88
int
depth);
89
extern
N_data_star
*
N_callback_solute_transport_2d
(
void
*solutedata,
90
N_geom_data
* geom,
91
int
col,
int
row);
92
extern
N_solute_transport_data3d
*
N_alloc_solute_transport_data3d
(
int
cols
,
93
int
rows,
94
int
depths);
95
extern
N_solute_transport_data2d
*
N_alloc_solute_transport_data2d
(
int
cols
,
96
int
rows);
97
extern
void
N_free_solute_transport_data3d
(
N_solute_transport_data3d
*
data
);
98
extern
void
N_free_solute_transport_data2d
(
N_solute_transport_data2d
*
data
);
99
100
/*compute the dispersivity tensor */
101
extern
void
N_calc_solute_transport_disptensor_2d
(
N_solute_transport_data2d
*
102
data
);
103
extern
void
N_calc_solute_transport_disptensor_3d
(
N_solute_transport_data3d
*
104
data
);
105
extern
void
N_calc_solute_transport_transmission_2d
(
N_solute_transport_data2d
106
*
data
);
107
extern
void
N_calc_solute_transport_transmission_3d
(
N_solute_transport_data3d
108
*
data
);
109
#endif
lib
gpde
N_solute_transport.h
Generated on Sun Mar 16 2014 05:07:47 for GRASS Programmer's Manual by
1.8.1.2