mirror of
https://git.gfz-potsdam.de/naaice/iphreeqc.git
synced 2025-12-16 16:44:49 +01:00
has test files only now. Will copy cpp branch here as src Phreeqc src will be subdirectory of src, like phast git-svn-id: svn://136.177.114.72/svn_GW/phreeqcpp/trunk@784 1feff8c3-07ed-0310-ac33-dd36852eb9cd
169 lines
4.7 KiB
Plaintext
169 lines
4.7 KiB
Plaintext
TITLE Example 12a.--Advective and diffusive transport of heat and solutes.
|
|
Constant boundary condition at one end, closed at other.
|
|
The problem is designed so that temperature should equal Na-conc
|
|
(in mmol/kgw) after diffusion. Compares with analytical solution
|
|
for 20-cell and 60-cell models.
|
|
EXCHANGE_SPECIES
|
|
Na+ + X- = NaX
|
|
log_k 0.0
|
|
-gamma 4.0 0.075
|
|
H+ + X- = HX
|
|
log_k -99.
|
|
-gamma 9.0 0.0
|
|
K+ + X- = KX
|
|
log_k 0.0
|
|
-gamma 3.5 0.015
|
|
#
|
|
# 20-cell model, initial conditions
|
|
#
|
|
SOLUTION 0 Fixed temp 24C, and NaCl conc (first type boundary cond) at inlet
|
|
units mol/kgw
|
|
temp 24
|
|
pH 7.0
|
|
pe 12.0 O2(g) -0.67
|
|
Na 24.e-3
|
|
Cl 24.e-3
|
|
SOLUTION 1-19 24.0 mM KNO3
|
|
units mol/kgw
|
|
temp 0 # Incoming solution 0C
|
|
pH 7.0
|
|
pe 12.0 O2(g) -0.67
|
|
K 24.e-3
|
|
N(5) 24.e-3
|
|
EXCHANGE 1-19
|
|
KX 0.048
|
|
SOLUTION 20 Same as soln 0 in cell 20 at closed column end (second type boundary cond)
|
|
units mol/kgw
|
|
temp 24
|
|
pH 7.0
|
|
pe 12.0 O2(g) -0.67
|
|
Na 24.e-3
|
|
Cl 24.e-3
|
|
EXCHANGE 20
|
|
NaX 0.048
|
|
PRINT
|
|
-reset false
|
|
-echo true
|
|
END
|
|
#
|
|
# 20-cell model, transport
|
|
#
|
|
TRANSPORT # Diffuse 24C, NaCl solution from column end
|
|
-cells 20
|
|
-shifts 1
|
|
-flow_d diffusion
|
|
-bcon constant closed
|
|
-length 1.0
|
|
-thermal_diffusion 3.0 # Heat is retarded equal to Na
|
|
-disp 0.0 # No dispersion
|
|
-diffc 0.3e-9 # m^2/s
|
|
-timest 1.0e+10 # 317 years, 19 substeps will be used
|
|
SELECTED_OUTPUT
|
|
-file ex12a.sel
|
|
-high_precision true
|
|
-reset false
|
|
-dist true
|
|
-temp true
|
|
USER_PUNCH
|
|
-head Na_mmol K_mmol Cl_mmol Cl-analytic Na_analytic
|
|
10 PUNCH TOT("Na")*1000, TOT("K")*1000, TOT("Cl")*1000
|
|
#
|
|
# Calculate deviation from analytical solution for Cl and Na
|
|
#
|
|
20 DATA 0.254829592, -0.284496736, 1.421413741, -1.453152027, 1.061405429
|
|
30 x = DIST
|
|
40 if (x > 8.5 OR SIM_TIME <= 0) THEN END
|
|
50 IF (ABS(x MOD 0.5) > 1e-3) OR (TC <= 0) THEN END
|
|
60 READ a1, a2, a3, a4, a5
|
|
70 REM calculate error in Cl
|
|
80 Arg = x / (2*SQRT(3e-10 * SIM_TIME / 1.0))
|
|
90 e = 1/(1 + 0.3275911 * Arg)
|
|
100 erfc_Cl = (e*(a1+e*(a2+e*(a3+e*(a4+e*a5)))))*EXP(-Arg*Arg);
|
|
110 REM calculate error in Na
|
|
120 Arg = x / (2*SQRT(3e-10 * SIM_TIME / 3.0))
|
|
130 e = 1/(1 + 0.3275911 * Arg)
|
|
140 erfc_Na = (e*(a1+e*(a2+e*(a3+e*(a4+e*a5)))))*EXP(-Arg*Arg);
|
|
150 REM punch results
|
|
160 error_Cl = 0.024 * erfc_Cl - TOT("Cl")
|
|
170 error_Na = 0.024 * erfc_Na - TOT("Na")
|
|
180 PUNCH error_Cl, error_Na
|
|
190 REM store results
|
|
200 j = x - 0.5
|
|
210 PUT(error_Cl, SIM_NO, j, 1)
|
|
220 PUT(error_Na, SIM_NO, j, 2)
|
|
500 END
|
|
END
|
|
#
|
|
# 60-cell model, initial conditions
|
|
#
|
|
SELECTED_OUTPUT
|
|
-user_punch false
|
|
SOLUTION 0 Fixed temp 24C, and NaCl conc (first type boundary cond) at inlet
|
|
units mol/kgw
|
|
temp 24
|
|
pH 7.0
|
|
pe 12.0 O2(g) -0.67
|
|
Na 24.e-3
|
|
Cl 24.e-3
|
|
SOLUTION 1-59 24.0 mM KNO3
|
|
units mol/kgw
|
|
temp 0 # Incoming solution 0C
|
|
pH 7.0
|
|
pe 12.0 O2(g) -0.67
|
|
K 24.e-3
|
|
N(5) 24.e-3
|
|
EXCHANGE 1-59
|
|
KX 0.048
|
|
SOLUTION 60 Same as soln 0 in cell 60 at closed column end (second type boundary cond)
|
|
units mol/kgw
|
|
temp 24
|
|
pH 7.0
|
|
pe 12.0 O2(g) -0.67
|
|
Na 24.e-3
|
|
Cl 24.e-3
|
|
EXCHANGE 60
|
|
NaX 0.048
|
|
END
|
|
#
|
|
# 60-cell model, transport
|
|
#
|
|
TRANSPORT # Diffuse 24C, NaCl solution from column end
|
|
-cells 60
|
|
-shifts 1
|
|
-flow_d diffusion
|
|
-bcon constant closed
|
|
-thermal_diffusion 3.0 # Heat is retarded equal to Na
|
|
-disp 0.0 # No dispersion
|
|
-diffc 0.3e-9 # m^2/s
|
|
-length .33333333333333333
|
|
-timest 1.0e+10 # 317 years
|
|
-punch_cell 1-60
|
|
SELECTED_OUTPUT
|
|
-high_precision true
|
|
-user_punch true
|
|
-reset false
|
|
-dist true
|
|
-temp true
|
|
END
|
|
#
|
|
# Print comparison with analytical solution for
|
|
# Cl and Na in 20-cell and 60-cell models
|
|
#
|
|
SOLUTION # Initial solution calculation for pure water
|
|
# A calculation is needed to invoke USER_PRINT
|
|
PRINT
|
|
-reset false # Initial solution calculation not printed
|
|
-echo true
|
|
-user_print true
|
|
SELECTED_OUTPUT
|
|
-high_precision false # Controls precision for USER_PRINT too.
|
|
USER_PRINT
|
|
10 PRINT " Error in Cl concentration Error in Na concentration"
|
|
20 PRINT " ------------------------- -------------------------"
|
|
30 PRINT " Distance 20-cell 60-cell 20-cell 60-cell"
|
|
40 PRINT " "
|
|
50 FOR j = 0 TO 8
|
|
60 PRINT j + 0.5, GET(2, j, 1), GET(4, j, 1), GET(2, j, 2), GET(4, j, 2)
|
|
70 NEXT j
|
|
END
|