Beispiel #1
0
    'Dref': D
}

tfact = 1 / 6.

#%% PARAMETERS (DOMAIN, BC, SOLVER)
domain_params = fn.set_domain_params(D,
                                     mvol,
                                     pqty,
                                     porosity,
                                     app_tort,
                                     slabels,
                                     input_file=root_dir +
                                     '\\phreeqc_input\\' + nn + '.phrq')
bc_params = fn.set_bc_params(bc_slabels={'left': 100001})
solver_params = fn.set_solver_params(tfact=tfact)
domain.nodetype[domain.nodetype == ct.Type.MULTILEVEL_CH] = ct.Type.MULTILEVEL
fn.save_settings(settings, bc_params, solver_params, path, nn)

#%% INITIATE THE SOLVER
carb_rt = rt.CarbonationRT('MultilevelAdvectionDiffusion', domain,
                           domain_params, bc_params, solver_params, settings)

#%% PARAMETERS
#plist =  [(1,2), (1,3), (1,4), (1,5), (1,6), (1,7), (1,8), (1,9), (1,10)]
plist = [(1, n) for n in np.arange(0, 10)]
pavglist = [
    'avg_poros', 'pH', 'avg_D_eff', 'sum_vol', 'precipitation', 'dissolution',
    'portlandite_cells', 'calcite_cells'
]
#'delta_ch', 'delta_cc', 'precipitation','dissolution', 'portlandite_cells',
Beispiel #2
0
dp['voxel_vol'] = 1
dp['mvol'] = mvol

dp['poros'] = porosity
dp['app_tort'] = app_tort

dp['solution_labels'] = slabels
dp['database'] = 'cemdata07.dat'

dp['phrqc_input_file'] = input_file  #'CH_CC_Ceq.phrq'
dp['eq_names'] = ['CSH']
dp['solid_phases'] = {'CSH': {'type': 'diffusive', 'mvol': mvol[0], 'c': pqty}}

#bc_params = fn.set_bc_params(bc_slabels = {'left':100001})
solver_params = fn.set_solver_params(
    tfact=1 / 6., smart_thres=1e-8, cphi_fact=1 /
    3.)  # optional values, for time step (if tfact => tfactbased tau)
solver_params['phrqc_flags']['smart_run'] = False
domain.nodetype[domain.nodetype == ct.Type.MULTILEVEL_CH] = ct.Type.MULTILEVEL
fn.save_settings(settings, bc_params, solver_params, path, nn)
#%% INITIATE THE SOLVER
rt = rtl.CSH_Leaching('MultilevelAdvectionDiffusion', domain, dp, bc_params,
                      solver_params, settings)
#%% RUN SOLVER
it = time.time()
itr = 0
j = 0
l = ll
prev_csh = deepcopy(rt.solid.CSH.c > 0)
rt.dissolution_time = []
rt_csh = []
Beispiel #3
0
}

tfact_default = 1. / 6. * init_porosCH
tfact_scale = 5.
tfact = tfact_default * tfact_scale
#%% PARAMETERS (DOMAIN, BC, SOLVER)
domain_params = fn.set_domain_params(D,
                                     mvol,
                                     pqty,
                                     porosity,
                                     app_tort,
                                     slabels,
                                     input_file=root_dir +
                                     '\\phreeqc_input\\' + nn + '.phrq')
bc_params = fn.set_bc_params(bc_slabels={'left': 100001})
solver_params = fn.set_solver_params(tfact=tfact, smart_thres=1e-8)
domain.nodetype[domain.nodetype == ct.Type.MULTILEVEL_CH] = ct.Type.MULTILEVEL
fn.save_settings(settings, bc_params, solver_params, path, nn)

#%% INITIATE THE SOLVER
carb_rt = rt.CarbonationRT('MultilevelAdvectionDiffusion', domain,
                           domain_params, bc_params, solver_params, settings)

#%% PARAMETERS
#plist =  [(1,2), (1,3), (1,4), (1,5), (1,6), (1,7), (1,8), (1,9), (1,10)]
plist = [(1, n) for n in np.arange(0, 6)]
pavglist = [
    'avg_poros', 'pH', 'avg_D_eff', 'sum_vol', 'precipitation', 'dissolution',
    'portlandite_cells', 'calcite_cells'
]
#'delta_ch', 'delta_cc', 'precipitation','dissolution', 'portlandite_cells',
Beispiel #4
0
                         'pore_size': 0.01*dx, # threshold radius or distance/2
                         'crystal_size': 0.5*dx, # crystal or pore length
                         'pore_density': 2000, #pore density per um3 - only for cylinder type
                         }, 
            'subgrid': {'fraction':0.004}, # fraction of interface cell number or None = porosity
            'app_tort':{'degree': 1./3.}, #TODO
            'velocity': False, 
            'bc': phrqc_input['c_bc'],
            'dx': dx, 
            'Dref':D
            }
tfact_default = 1./6./1#*init_porosCH
domain_params = fn.set_domain_params(D, mvol, pqty, porosity, app_tort, slabels,
                                     input_file = root_dir +'\\phreeqc_input\\' + nn + '.phrq')
bc_params = fn.set_bc_params(bc_slabels = {'left':100001})
solver_params = fn.set_solver_params(tfact = tfact_default, smart_thres = 1e-8, cphi_fact = 1/3.)
#fn.save_settings(settings, bc_params, solver_params, path, nn)
#csh=yantra.PhrqcReactiveTransport('MultilevelDiffusion',domain,domain_params,bc_params,solver_params)
csh=rt.CarbonationRT('MultilevelDiffusion',domain,domain_params,bc_params,solver_params, settings)

#%% results dict

plist =  [(1,n) for n in np.arange(3, 6)] #points list
pavglist = ['avg_poros', 'pH', 'avg_D_eff', 'sum_vol', 'precipitation', #argument list
            'dissolution', 'portlandite_cells', 'calcite_cells'] 
results = fn.init_results(pavg=True, pavg_list=pavglist, points=plist, ptype=m)

Ts  = 100 #s
Ts = Ts/scale + 0.001
N = Ts/csh.dt
N_res = 1e+4
                         'pore_density': 2000, #pore density per um3 - only for cylinder type
                         }, 
            'subgrid': {'fraction':None}, # fraction of interface cell number or None = porosity
            'app_tort':{'degree': app_tort_degree}, #TODO
            'velocity': False, 
            'bc': phrqc_input['c_bc'],
            'dx': dx, 
            'Dref':D
            }
               
#%% PARAMETERS (DOMAIN, BC, SOLVER)
domain_params = fn.set_domain_params(D, mvol, pqty, porosity, app_tort, slabels,
                                     input_file = root_dir + \
                                     '\\phreeqc_input\\' + nn + '.phrq')#'CH_CC-nat.phrq'
bc_params = fn.set_bc_params(bc_slabels = {'left':100001})
solver_params = fn.set_solver_params(tfact = None, smart_thres = 1e-8)# optional values, for time step (if tfact => tfactbased tau)
domain.nodetype[domain.nodetype == ct.Type.MULTILEVEL_CH] = ct.Type.MULTILEVEL
fn.save_settings(settings, bc_params, solver_params, path, nn)
#%% INITIATE THE SOLVER
carb_rt= rt.CarbonationRT('MultilevelAdvectionDiffusion',  domain, 
                          domain_params, bc_params, solver_params,
                          settings) 

#%% PARAMETERS

plist =  [(1,n) for n in np.arange(1, 6)] #points list
pavglist = ['avg_poros', 'pH', 'avg_D_eff', 'sum_vol', 'precipitation', #argument list
            'dissolution', 'portlandite_cells', 'calcite_cells'] 
#'delta_ch', 'delta_cc', 'precipitation','dissolution', 'portlandite_cells', 
#'calcite_cells', 'active_cells','dt', 'pH', 'avg_poros',  'avg_D_eff', 'sum_vol'
results = fn.init_results(pavg=True, pavg_list=pavglist, points=plist, ptype=m)