Click here to donate to keep PhreeqcUsers open

#DATABASE concrete_3T_V07_02.datTITLE Diffusion Transport, Multi-D and porosity experiment# Simple calcite diffusion case. # Calcite: Molar volume 36.9 cm3/mol = MW (100.09 g/mol) / rho (2.71 g/cm3)# Model name: _multi_D_Phreeqc_ForumSOLUTION 0 Plain water -units mg/L pH 5 Cl 1 mg/L charge Na 1 mg/LSAVE SOLUTION 0ENDSOLUTION 1-20 Initial solutions for transport column -units mg/L pH 5 Cl 1 mg/L charge Na 1 mg/LUSE solution 1EQUILIBRIUM PHASES 1-20 Calcite 0 27 # 10 mole = aprox. 1 kg calciteSAVE equilibrium_phases 1-20ENDPRINT; -reset false; -status false TRANSPORT -cells 20 -lengths 0.001 #m -> 1 cm sized cells, total length of column = 20*1 cm = 20cm -shifts 1000 #total time = shifts x time_step -time_step 6.21e-06 year #years -flow_direction diffusion_only -boundary_conditions flux closed -punch_cells 1 2 5 10 20 -punch_frequency 1 -print_cells 1 2 5 10 20 -print_frequency 100 -multi_D true 2.29e-9 0.5 0 1 #diffusion coeff of pure water m2/s -implicit true -porosities 0.5SELECTED_OUTPUT 1 -file Phases_multi_D_Phreeqc_Forum.sel -reset false -step -totals Na Cl Ca -equilibrium_phases Calcite -high_precision true USER_PUNCH 2 -headings TOTAL_TIME Cell Porosities calcite Diff-Ca+2 -start10 PUNCH TOTAL_TIME11 PUNCH CELL_NO20 PUNCH GET_POR(CELL_NO)21 PUNCH EQUI("Calcite")22 PUNCH DIFF_C("Ca+2")100 REM calculate the porosity 140 cal = EQUI("Calcite") #Moles of calcite in the equilibrium-phase assemblage.141 ini_por = 0.5 #% #initial porosity, half calcite, half water162 molmass = 100.0869 #molar mass of calcite, g/mol164 dens = 2.711 #density of calcite, g/cm3165 cal_V = (cal * (molmass/dens)) #Volume of calcite in cm3166 Vtot = 1000 + cal_V #Volume water + volume of calcite, cm3168 new_por = 1-cal_V/Vtot #new porosity (-)169 CHANGE_POR(new_por, CELL_NO) #Changing porosity to new porosity -endSELECTED_OUTPUT 2 -file porosities_multi_D_Phreeqc_Forum.txt -high_precision true -user_punch trueUSER_GRAPH 1 -chart_title "Concentration Calcium" -headings Ca_cell_1 Ca_cell_2 Ca_cell_5 Ca_cell_10 Ca_cell_20 -axis_titles "Time (hours)" "moles per kg water"# -plot_concentration_vs time -start 10 x = TOTAL_TIME/3600 #Total_time default is in seconds 15 c = TOT("Ca") #*1000# 15 c = MOL("H+") #to plot pH# 16 c = -lOG10(c) 20 if (cell_no = 1) then PUT(c, 10) 30 if (cell_no = 2) then PUT(c, 20) 40 if (cell_no = 5) then PUT(c, 30) 50 if (cell_no = 10) then PUT(c, 40) 55 if (cell_no = 20) then PUT(c, 50) 60 if (cell_no <> 20) then goto 200 70 PLOT_XY x, get(10), color = Blue , symbol_size = 2 80 PLOT_XY x, get(20), color = Red, symbol_size = 2 90 PLOT_XY x, get(30), color = Green, symbol_size = 2 100 PLOT_XY x, get(40), color = cyan , symbol_size = 2 110 PLOT_XY x, get(50), color = black , symbol_size = 2 200 REM end#-batch Calcium_multi_D_Phreeqc_Forum.png false false-end USER_GRAPH 2 -chart_title "Calcite_Concentration" -headings Calcite_cell_1 Calcite_cell_2 Calcite_cell_5 Calcite_cell_10 Calcite_cell_20 -axis_titles "Time (hours)" "moles per kg water"# -plot_concentration_vs time -start300 x = TOTAL_TIME/3600 310 c = EQUI("Calcite") #*1000 320 if (cell_no = 1) then PUT(c, 300) 340 if (cell_no = 2) then PUT(c, 320) 350 if (cell_no = 5) then PUT(c, 340) 360 if (cell_no = 10) then PUT(c, 350) 370 if (cell_no = 20) then PUT(c, 360) 380 if (cell_no <> 20) then goto 440 390 PLOT_XY x, get(300), color = Blue , symbol_size = 2400 PLOT_XY x, get(320), color = Red, symbol_size = 2 410 PLOT_XY x, get(340), color = Green, symbol_size = 2 420 PLOT_XY x, get(350), color = cyan , symbol_size = 2430 PLOT_XY x, get(360), color = black , symbol_size = 2440 REM end #-batch Calcite_multi_D_Phreeqc_Forum.png false false -end USER_GRAPH 3 -chart_title "Porosity over time" -headings Porosity_cell_1 Porosity_cell_2 Porosity_cell_5 Porosity_cell_10 Porosity_cell_20 -axis_titles "Time (hours)" "Porosity"# -plot_concentration_vs time -start 1000 x = TOTAL_TIME/3600 1500 c = GET_POR(CELL_NO) 2000 if (cell_no = 1) then PUT(c, 1000) 3000 if (cell_no = 2) then PUT(c, 2000) 4000 if (cell_no = 5) then PUT(c, 3000) 5000 if (cell_no = 10) then PUT(c, 4000) 5500 if (cell_no = 20) then PUT(c, 5000) 6000 if (cell_no <> 20) then goto 20000 7000 PLOT_XY x, get(1000), color = Blue , symbol_size = 2 8000 PLOT_XY x, get(2000), color = Red, symbol_size = 2 9000 PLOT_XY x, get(3000), color = Green, symbol_size = 2 10000 PLOT_XY x, get(4000), color = cyan , symbol_size = 2 11000 PLOT_XY x, get(5000), color = black , symbol_size = 2 20000 REM end#-batch Porosity_multi_D_Phreeqc_Forum.png false false -end END