dx=dx, grid_type='nodal') domain.nodetype[:, (ll + 1):ll + l_csh] = ct.Type.MULTILEVEL domain.nodetype[0, :] = ct.Type.SOLID domain.nodetype[-1, :] = ct.Type.SOLID domain.nodetype[:, -1] = ct.Type.SOLID plt.figure(figsize=(5, 5)) plt.imshow(domain.nodetype) plt.show() #%% PHREEQC scale = 100 # scale of molar volume mvol = [51.7e-3 * scale] #m3/mol # CSH Jennite and SiO2 max_pqty = fn.get_max_pqty(mvol) #mol/m3 init_conc = fn.set_init_pqty(mvol, scale=scale, porosCH=0.45) #TODO replace porosity CSH nn = os.path.basename(__file__)[:-3] nn += '_' + str(f) fn.make_output_dir(root_dir + '\\results\\output_csh\\03_leaching') path = root_dir + '\\results\\output_csh\\03_leaching\\' + nn + '\\' fn.make_output_dir(path) phase_name = m phrqc_input = { 'csh_mol': { 'value': str(init_conc[0]) }, 'csh': { 'name': phase_name, 'stochiometry': { 'Ca': 0.83,
'ca_liq': { 'type': 'conc', 'value': '0' } } # another option ca_liq':{'type':'conc', 'value': '0'} or ca_liq':{'type':'eq', 'value': 'portlandite'} phrqc = rt1.PhreeqcInputCH(phrqc_input) phrqc.save_phrqc_input(root_dir, nn) #%% VALUES scale = 100 # scale of molar volume init_porosCH = 0.05 #initial porosity of portlandite nodes mvolCH = 0.0331 * scale mvol = [mvolCH] max_pqty = fn.get_max_pqty(mvol) #mol/m3 init_conc = fn.set_init_pqty(mvol, scale=scale, porosCH=init_porosCH) pqty = fn.get_pqty(init_conc, domain) slabels = fn.set_labels(domain, m) D_CH = 1.e-15 D_border = 1.e-9 # 5.e-10#8*1.e-12 D_high = 1.e-9 D = D_high * (domain.nodetype == -1) + D_CH * (domain.nodetype != -1) D[1, ll + 1] = D_border # default diffusion coefficient in pure liquid #D = D_high porosity = fn.get_porosity(domain, pqty, mvol, m) app_tort_degree = 1. #1./3. app_tort = 1. * porosity**app_tort_degree settings = { 'dissolution': 'subgrid', #'multilevel'/'subgrid'
phrqc_input += set_phrqc_liquid(p['ca_liq']) phrqc_input += set_phrqc_mlvl(p['ca_mlvl']) phrqc_input += set_phrqc_solid() return phrqc_input phrqc = set_phrqc_input(phrqc_input) fn.save_phrqc_input(phrqc, root_dir, nn) #%% VALUES scale = 50 # scale of molar volume init_porosCH = 0.1 #initial porosity of portlandite nodes mvolCH = 0.0331 * scale mvol = [mvolCH] max_pqty = fn.get_max_pqty(mvol) #mol/m3 init_conc = fn.set_init_pqty(mvol, init_porosCH) pqty = fn.get_pqty(init_conc, domain) slabels = fn.set_labels(domain, m) D_CH = 1.e-15 D_border = 1.e-9 # 5.e-10#8*1.e-12 D_high = 1.e-9 D = D_high * (domain.nodetype == -1) + D_CH * (domain.nodetype != -1) D[1, ll + 1] = D_border # default diffusion coefficient in pure liquid #D = D_high porosity = fn.get_porosity(domain, pqty, mvol, m) app_tort_degree = 1. #1./3. app_tort = 1. * porosity**app_tort_degree settings = { 'dissolution': 'subgrid', #'multilevel'/'subgrid'