{
"cells": [
{
"cell_type": "code",
"execution_count": 32,
"id": "07b83454",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"All good\n"
]
},
{
"data": {
"text/html": [
""
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%run \"D:\\Studium\\MA Runde 2\\02a Simulationen\\02 Freundlich Basismodel\\utils_freundlich_NilsV2.ipynb\"\n",
"%run \"D:\\Studium\\MA Runde 2\\02a Simulationen\\02 Freundlich Basismodel\\VerteilungsfunktionV5.ipynb\""
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "0fad8d11",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Homogener Fall\n"
]
}
],
"source": [
"c_feed = [6.865]#6.865 \n",
"n_bound = [1] \n",
"t_in_seconds =19099238#13477635*2 \n",
"n_col= 150\n",
"\n",
"volume_flow_rate = 4.71e-5 \n",
"\n",
"k_RL = [0.000833] #8.374e-4 \n",
"\n",
"resolution = int(t_in_seconds/3600)\n",
"adsorption_parameters = Dict()\n",
"adsorption_parameters.is_kinetic = 1\n",
"adsorption_parameters.FLDF_KKIN = [0.000003] \n",
"adsorption_parameters.FLDF_KF = [43634.176] \n",
"adsorption_parameters.FLDF_N = [2.434308] \n",
"k_film = [0.006477] #2.970e-6 #2.970e-6\n",
"porediffusion=3.314470e-10\n",
"k_RL=[8.374e-4]\n",
"folder= 'Distribution models'\n",
"size_distribution=None #folder+'/''GroeßenVerteilung_Ruhl_GAC#A'\n",
"porosity_distribution= None #folder+'/'+'SyntheticNormaldist_porosity_0.05_0.55'\n",
"axial_distribution=None\n",
"vol_frac, sizeclasses,porosityclasses, n_partype = CADETInputs(n_col,size_distribution,porosity_distribution,axial_distribution)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "3e402b79",
"metadata": {},
"outputs": [],
"source": [
"def create_column_GRM_varying_col_porosity(t_in_seconds,n_col, n_bound,n_partype, c_feed, adsorption_parameters, resolution, sizeclasses, porosityclasses ,vol_frac, porediffusion=1,k_film=[2.970e-6] ,\n",
" k_RL=[8.374e-4],n_columns=1, volume_flow_rate = 4.71e-5 ):\n",
" \n",
" t_in_minutes = t_in_seconds / 60\n",
" t_in_hours = t_in_minutes / 60\n",
" \n",
" n_comp = len(c_feed) \n",
" \n",
"\n",
" model = get_cadet_template(n_columns+2)\n",
" \n",
" \n",
" ######################################### INLET ###########################################################\n",
" model.root.input.model.unit_000.unit_type = 'INLET'\n",
" model.root.input.model.unit_000.ncomp = n_comp \n",
" model.root.input.model.unit_000.inlet_type = 'PIECEWISE_CUBIC_POLY'\n",
" \n",
" model.root.input.model.unit_000.sec_000.const_coeff = c_feed # mol/m^3\n",
" vol_frac_sliced=[]\n",
" n_col_sliced = int(n_col/n_columns)\n",
" n_col_per_column=[]\n",
" if vol_frac !=[1]:\n",
" vol_frac=np.array(vol_frac).reshape(n_col,n_partype)\n",
" for j in range(n_columns):\n",
" if j == n_columns-1:\n",
" dingus= vol_frac[(j)*n_col_sliced:, :]\n",
" n_col_per_column.append(len(dingus))\n",
" vol_frac_sliced.append(dingus)\n",
" else: \n",
" dingus= vol_frac[j*n_col_sliced:-(n_col-(j+1)*n_col_sliced), :]\n",
" n_col_per_column.append(len(dingus))\n",
" vol_frac_sliced.append(dingus)\n",
" else:\n",
" vol_frac_sliced = np.ones(n_columns)\n",
" for j in range(n_columns):\n",
" if j == n_columns-1:\n",
" n_col_per_column.append(n_col-j*n_col_sliced)\n",
" else:\n",
" n_col_per_column.append(n_col_sliced)\n",
" \n",
" for unit in range(1,n_columns+1):\n",
" #################################### Column ################################################################\n",
" model.root.input.model['unit_{0:03d}'.format(unit)].unit_type = 'GENERAL_RATE_MODEL' \n",
" model.root.input.model['unit_{0:03d}'.format(unit)].ncomp = n_comp \n",
" model.root.input.model['unit_{0:03d}'.format(unit)].col_length = 2.1/n_columns # m Pit: 2.1\n",
" model.root.input.model['unit_{0:03d}'.format(unit)].col_porosity = 0.45+(unit-1)*0.00 # Pit: 0.45 \n",
" model.root.input.model['unit_{0:03d}'.format(unit)].cross_section_area = 0.046 # m^2 Pit: 0.046\n",
" model.root.input.model['unit_{0:03d}'.format(unit)].velocity = 2.28e-3 # m/s Pit: 2.28e-3 #3.25e-3\n",
" model.root.input.model['unit_{0:03d}'.format(unit)].col_dispersion = n_comp*[0] # m^2/s Aumeier:\n",
" model.root.input.model['unit_{0:03d}'.format(unit)].init_c = n_comp * [0] # mol/m^3 \n",
" model.root.input.model['unit_{0:03d}'.format(unit)].init_q = n_comp *[0] \n",
"\n",
"\n",
" ##################################Particles###################################################################\n",
"\n",
" model.root.input.model['unit_{0:03d}'.format(unit)].film_diffusion = k_film # m/s\n",
" model.root.input.model['unit_{0:03d}'.format(unit)].film_diffusion_multiplex = 0 \n",
" model.root.input.model['unit_{0:03d}'.format(unit)].par_diffusion = [porediffusion,] # m^2 / s (mobile phase) Vereinfachung da homogene Partikelprosität angenommen 0.555*2.181e-10\n",
" model.root.input.model['unit_{0:03d}'.format(unit)].par_diffusion_multiplex = 0\n",
" model.root.input.model['unit_{0:03d}'.format(unit)].par_surfdiffusion = [0,] # m^2 / s (solid phase)\n",
" model.root.input.model['unit_{0:03d}'.format(unit)].par_surfdiffusion_multiplex = 0\n",
" model.root.input.model['unit_{0:03d}'.format(unit)].par_porosity = porosityclasses # Pitt: 0.49\n",
" model.root.input.model['unit_{0:03d}'.format(unit)].par_radius = sizeclasses # [5.5e-4,4.5e-4,3.5e-4,2.5e-4,1.5e-4] # m beachte RADIUS!!!!! Pitt d=1.1mm --> 0,55mm\n",
" model.root.input.model['unit_{0:03d}'.format(unit)].par_type_volfrac = vol_frac_sliced[unit-1].flatten().tolist() \n",
"\n",
"\n",
" ##########################Reaction#########################################################\n",
"\n",
" model.root.input.model['unit_{0:03d}'.format(unit)].reaction_model_particles = 'MASS_ACTION_LAW'\n",
" model.root.input.model['unit_{0:03d}'.format(unit)].reaction_particle.MAL_KFWD_liquid = k_RL\n",
" #model.root.input.model.unit_001.reaction_particle.MAL_KFWD_solid = [0]\n",
"\n",
" model.root.input.model['unit_{0:03d}'.format(unit)].reaction_particle.MAL_KBWD_liquid = 0\n",
" #model.root.input.model.unit_001.reaction_particle.MAL_KBWD_solid = [0]\n",
"\n",
" model.root.input.model['unit_{0:03d}'.format(unit)].reaction_particle.MAL_STOICHIOMETRY_liquid = [-1] #[-1, 1] nur wenn zwei Komponenten in c_feed = [6.865, 0] sind, wurde nur einmal verwendet um den DOC Abbau abzubilden\n",
" #model.root.input.model.unit_001.reaction_particle.MAL_STOICHIOMETRY_solid = [-1]\n",
"\n",
" ################################### Adsorption ###############################################################\n",
" model.root.input.model['unit_{0:03d}'.format(unit)].adsorption_model = 'FREUNDLICH_LDF' \n",
" model.root.input.model['unit_{0:03d}'.format(unit)].adsorption = adsorption_parameters \n",
" ################################### Discretization #############################################################\n",
" \n",
" set_discretization(model, n_bound)\n",
" for unit in range(1,n_columns+1):\n",
" model.root.input.model['unit_{0:03d}'.format(unit)].discretization.ncol = n_col_per_column[unit-1] \n",
" model.root.input.model['unit_{0:03d}'.format(unit)].discretization.nbound = n_bound \n",
" model.root.input.model['unit_{0:03d}'.format(unit)].discretization.npartype = n_partype\n",
" model.root.input.model['unit_{0:03d}'.format(unit)].discretization.par_geom = 'SPHERE' \n",
"\n",
" \n",
" \n",
"\n",
" ########################################### Outlet ######################################################\n",
" model.root.input.model['unit_{0:03d}'.format(n_columns+1)].unit_type = 'OUTLET'\n",
" model.root.input.model['unit_{0:03d}'.format(n_columns+1)].ncomp = n_comp\n",
"\n",
" \n",
" ###################################### Sections and Switches ############################################\n",
" model.root.input.solver.sections.nsec = 1 \n",
" model.root.input.solver.sections.section_times = [0.0, t_in_seconds] \n",
" model.root.input.solver.sections.section_continuity = [0] \n",
"\n",
" model.root.input.model.connections.nswitches = 1 \n",
" model.root.input.model.connections.switch_000.section = 0 \n",
" \n",
" connections=[]\n",
" for k in range(n_columns+1):\n",
" connections.append(k)\n",
" connections.append(k+1)\n",
" connections.append(-1)\n",
" connections.append(-1)\n",
" connections.append(volume_flow_rate)\n",
" model.root.input.model.connections.switch_000.connections = connections #[\n",
" \n",
" # 0, 1, -1, -1, volume_flow_rate, \n",
" #1, 2, -1, -1, volume_flow_rate]\n",
" \n",
"\n",
" #unit_from, unit_to, component_from, component_to, volumetric flow rate\n",
" #unit_000, unit_001, all components, all components, Q\n",
" #unit_001, unit_002, all components, all components, Q\n",
" #-1 = all components from origin and destination unit are connected\n",
" \n",
" \n",
" ####################################### Simulator Settings ################################################\n",
" \n",
" \n",
" model.root.input.solver.user_solution_times = np.linspace(0, t_in_seconds, resolution)\n",
" \n",
" return model"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "44fc54a2",
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"{'nunits': 6,\n",
" 'solver': {'gs_type': 1,\n",
" 'max_krylov': 0,\n",
" 'max_restarts': 10,\n",
" 'schur_safety': 1e-08},\n",
" 'unit_000': {'unit_type': 'INLET',\n",
" 'ncomp': 1,\n",
" 'inlet_type': 'PIECEWISE_CUBIC_POLY',\n",
" 'sec_000': {'const_coeff': [6.865]}},\n",
" 'unit_001': {'unit_type': 'GENERAL_RATE_MODEL',\n",
" 'ncomp': 1,\n",
" 'col_length': 0.525,\n",
" 'col_porosity': 0.45,\n",
" 'cross_section_area': 0.046,\n",
" 'velocity': 0.00228,\n",
" 'col_dispersion': [0],\n",
" 'init_c': [0],\n",
" 'init_q': [0],\n",
" 'film_diffusion': [0.006477],\n",
" 'film_diffusion_multiplex': 0,\n",
" 'par_diffusion': [3.31447e-10],\n",
" 'par_diffusion_multiplex': 0,\n",
" 'par_surfdiffusion': [0],\n",
" 'par_surfdiffusion_multiplex': 0,\n",
" 'par_porosity': [0.555],\n",
" 'par_radius': [0.00055],\n",
" 'par_type_volfrac': [1.0],\n",
" 'reaction_model_particles': 'MASS_ACTION_LAW',\n",
" 'reaction_particle': {'MAL_KFWD_liquid': [0.0008374],\n",
" 'MAL_KBWD_liquid': 0,\n",
" 'MAL_STOICHIOMETRY_liquid': [-1]},\n",
" 'adsorption_model': 'FREUNDLICH_LDF',\n",
" 'adsorption': {'is_kinetic': 1,\n",
" 'FLDF_KKIN': [3e-06],\n",
" 'FLDF_KF': [43634.176],\n",
" 'FLDF_N': [2.434308]},\n",
" 'discretization': {'ncol': 37,\n",
" 'npar': 1,\n",
" 'nbound': [1],\n",
" 'par_disc_type': 'EQUIDISTANT_PAR',\n",
" 'use_analytic_jacobian': 1,\n",
" 'reconstruction': 'WENO',\n",
" 'gs_type': 1,\n",
" 'max_krylov': 0,\n",
" 'max_restarts': 10,\n",
" 'schur_safety': 1e-08,\n",
" 'weno': {'boundary_model': 0, 'weno_eps': 1e-10, 'weno_order': 3},\n",
" 'npartype': 1,\n",
" 'par_geom': 'SPHERE'}},\n",
" 'unit_002': {'unit_type': 'GENERAL_RATE_MODEL',\n",
" 'ncomp': 1,\n",
" 'col_length': 0.525,\n",
" 'col_porosity': 0.45,\n",
" 'cross_section_area': 0.046,\n",
" 'velocity': 0.00228,\n",
" 'col_dispersion': [0],\n",
" 'init_c': [0],\n",
" 'init_q': [0],\n",
" 'film_diffusion': [0.006477],\n",
" 'film_diffusion_multiplex': 0,\n",
" 'par_diffusion': [3.31447e-10],\n",
" 'par_diffusion_multiplex': 0,\n",
" 'par_surfdiffusion': [0],\n",
" 'par_surfdiffusion_multiplex': 0,\n",
" 'par_porosity': [0.555],\n",
" 'par_radius': [0.00055],\n",
" 'par_type_volfrac': [1.0],\n",
" 'reaction_model_particles': 'MASS_ACTION_LAW',\n",
" 'reaction_particle': {'MAL_KFWD_liquid': [0.0008374],\n",
" 'MAL_KBWD_liquid': 0,\n",
" 'MAL_STOICHIOMETRY_liquid': [-1]},\n",
" 'adsorption_model': 'FREUNDLICH_LDF',\n",
" 'adsorption': {'is_kinetic': 1,\n",
" 'FLDF_KKIN': [3e-06],\n",
" 'FLDF_KF': [43634.176],\n",
" 'FLDF_N': [2.434308]},\n",
" 'discretization': {'ncol': 37,\n",
" 'npar': 1,\n",
" 'nbound': [1],\n",
" 'par_disc_type': 'EQUIDISTANT_PAR',\n",
" 'use_analytic_jacobian': 1,\n",
" 'reconstruction': 'WENO',\n",
" 'gs_type': 1,\n",
" 'max_krylov': 0,\n",
" 'max_restarts': 10,\n",
" 'schur_safety': 1e-08,\n",
" 'weno': {'boundary_model': 0, 'weno_eps': 1e-10, 'weno_order': 3},\n",
" 'npartype': 1,\n",
" 'par_geom': 'SPHERE'}},\n",
" 'unit_003': {'unit_type': 'GENERAL_RATE_MODEL',\n",
" 'ncomp': 1,\n",
" 'col_length': 0.525,\n",
" 'col_porosity': 0.45,\n",
" 'cross_section_area': 0.046,\n",
" 'velocity': 0.00228,\n",
" 'col_dispersion': [0],\n",
" 'init_c': [0],\n",
" 'init_q': [0],\n",
" 'film_diffusion': [0.006477],\n",
" 'film_diffusion_multiplex': 0,\n",
" 'par_diffusion': [3.31447e-10],\n",
" 'par_diffusion_multiplex': 0,\n",
" 'par_surfdiffusion': [0],\n",
" 'par_surfdiffusion_multiplex': 0,\n",
" 'par_porosity': [0.555],\n",
" 'par_radius': [0.00055],\n",
" 'par_type_volfrac': [1.0],\n",
" 'reaction_model_particles': 'MASS_ACTION_LAW',\n",
" 'reaction_particle': {'MAL_KFWD_liquid': [0.0008374],\n",
" 'MAL_KBWD_liquid': 0,\n",
" 'MAL_STOICHIOMETRY_liquid': [-1]},\n",
" 'adsorption_model': 'FREUNDLICH_LDF',\n",
" 'adsorption': {'is_kinetic': 1,\n",
" 'FLDF_KKIN': [3e-06],\n",
" 'FLDF_KF': [43634.176],\n",
" 'FLDF_N': [2.434308]},\n",
" 'discretization': {'ncol': 37,\n",
" 'npar': 1,\n",
" 'nbound': [1],\n",
" 'par_disc_type': 'EQUIDISTANT_PAR',\n",
" 'use_analytic_jacobian': 1,\n",
" 'reconstruction': 'WENO',\n",
" 'gs_type': 1,\n",
" 'max_krylov': 0,\n",
" 'max_restarts': 10,\n",
" 'schur_safety': 1e-08,\n",
" 'weno': {'boundary_model': 0, 'weno_eps': 1e-10, 'weno_order': 3},\n",
" 'npartype': 1,\n",
" 'par_geom': 'SPHERE'}},\n",
" 'unit_004': {'unit_type': 'GENERAL_RATE_MODEL',\n",
" 'ncomp': 1,\n",
" 'col_length': 0.525,\n",
" 'col_porosity': 0.45,\n",
" 'cross_section_area': 0.046,\n",
" 'velocity': 0.00228,\n",
" 'col_dispersion': [0],\n",
" 'init_c': [0],\n",
" 'init_q': [0],\n",
" 'film_diffusion': [0.006477],\n",
" 'film_diffusion_multiplex': 0,\n",
" 'par_diffusion': [3.31447e-10],\n",
" 'par_diffusion_multiplex': 0,\n",
" 'par_surfdiffusion': [0],\n",
" 'par_surfdiffusion_multiplex': 0,\n",
" 'par_porosity': [0.555],\n",
" 'par_radius': [0.00055],\n",
" 'par_type_volfrac': [1.0],\n",
" 'reaction_model_particles': 'MASS_ACTION_LAW',\n",
" 'reaction_particle': {'MAL_KFWD_liquid': [0.0008374],\n",
" 'MAL_KBWD_liquid': 0,\n",
" 'MAL_STOICHIOMETRY_liquid': [-1]},\n",
" 'adsorption_model': 'FREUNDLICH_LDF',\n",
" 'adsorption': {'is_kinetic': 1,\n",
" 'FLDF_KKIN': [3e-06],\n",
" 'FLDF_KF': [43634.176],\n",
" 'FLDF_N': [2.434308]},\n",
" 'discretization': {'ncol': 39,\n",
" 'npar': 1,\n",
" 'nbound': [1],\n",
" 'par_disc_type': 'EQUIDISTANT_PAR',\n",
" 'use_analytic_jacobian': 1,\n",
" 'reconstruction': 'WENO',\n",
" 'gs_type': 1,\n",
" 'max_krylov': 0,\n",
" 'max_restarts': 10,\n",
" 'schur_safety': 1e-08,\n",
" 'weno': {'boundary_model': 0, 'weno_eps': 1e-10, 'weno_order': 3},\n",
" 'npartype': 1,\n",
" 'par_geom': 'SPHERE'}},\n",
" 'unit_005': {'unit_type': 'OUTLET', 'ncomp': 1},\n",
" 'connections': {'nswitches': 1,\n",
" 'switch_000': {'section': 0,\n",
" 'connections': [0,\n",
" 1,\n",
" -1,\n",
" -1,\n",
" 4.71e-05,\n",
" 1,\n",
" 2,\n",
" -1,\n",
" -1,\n",
" 4.71e-05,\n",
" 2,\n",
" 3,\n",
" -1,\n",
" -1,\n",
" 4.71e-05,\n",
" 3,\n",
" 4,\n",
" -1,\n",
" -1,\n",
" 4.71e-05,\n",
" 4,\n",
" 5,\n",
" -1,\n",
" -1,\n",
" 4.71e-05]}}}"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test1 = create_column_GRM_varying_col_porosity(t_in_seconds,n_col, n_bound,n_partype, c_feed, adsorption_parameters, resolution, sizeclasses, porosityclasses ,vol_frac, porediffusion,k_film ,\n",
" k_RL,n_columns=4, volume_flow_rate = 4.71e-5 )\n",
"\n",
"test1.root.input.model"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "c84c6486",
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"{'nunits': 3,\n",
" 'solver': {'gs_type': 1,\n",
" 'max_krylov': 0,\n",
" 'max_restarts': 10,\n",
" 'schur_safety': 1e-08},\n",
" 'unit_000': {'unit_type': 'INLET',\n",
" 'ncomp': 1,\n",
" 'inlet_type': 'PIECEWISE_CUBIC_POLY',\n",
" 'sec_000': {'const_coeff': [6.865]}},\n",
" 'unit_001': {'unit_type': 'GENERAL_RATE_MODEL',\n",
" 'ncomp': 1,\n",
" 'col_length': 2.1,\n",
" 'col_porosity': 0.45,\n",
" 'cross_section_area': 0.046,\n",
" 'velocity': 0.00228,\n",
" 'col_dispersion': [0],\n",
" 'init_c': [0],\n",
" 'init_q': [0],\n",
" 'film_diffusion': [0.006477],\n",
" 'film_diffusion_multiplex': 0,\n",
" 'par_diffusion': 3.31447e-10,\n",
" 'par_diffusion_multiplex': 0,\n",
" 'par_surfdiffusion': [0],\n",
" 'par_surfdiffusion_multiplex': 0,\n",
" 'par_porosity': [0.555],\n",
" 'par_radius': [0.00055],\n",
" 'par_type_volfrac': [1],\n",
" 'reaction_model_particles': 'MASS_ACTION_LAW',\n",
" 'reaction_particle': {'MAL_KFWD_liquid': [0.0008374],\n",
" 'MAL_KBWD_liquid': 0,\n",
" 'MAL_STOICHIOMETRY_liquid': [-1]},\n",
" 'adsorption_model': 'FREUNDLICH_LDF',\n",
" 'adsorption': {'is_kinetic': 1,\n",
" 'FLDF_KKIN': [3e-06],\n",
" 'FLDF_KF': [43634.176],\n",
" 'FLDF_N': [2.434308]},\n",
" 'discretization': {'ncol': 150,\n",
" 'npar': 1,\n",
" 'nbound': [1],\n",
" 'par_disc_type': 'EQUIDISTANT_PAR',\n",
" 'use_analytic_jacobian': 1,\n",
" 'reconstruction': 'WENO',\n",
" 'gs_type': 1,\n",
" 'max_krylov': 0,\n",
" 'max_restarts': 10,\n",
" 'schur_safety': 1e-08,\n",
" 'weno': {'boundary_model': 0, 'weno_eps': 1e-10, 'weno_order': 3},\n",
" 'npartype': 1,\n",
" 'par_geom': 'SPHERE'}},\n",
" 'unit_002': {'unit_type': 'OUTLET', 'ncomp': 1},\n",
" 'connections': {'nswitches': 1,\n",
" 'switch_000': {'section': 0,\n",
" 'connections': [0, 1, -1, -1, 4.71e-05, 1, 2, -1, -1, 4.71e-05]}}}"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test_homogeneous_col_porosity = create_column_GRM_Nette(t_in_seconds,n_col, n_bound,n_partype, c_feed, adsorption_parameters, resolution, sizeclasses, porosityclasses ,vol_frac, porediffusion,k_film ,\n",
" k_RL, volume_flow_rate , length=2.1)\n",
"test_homogeneous_col_porosity.root.input.model"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "ebbd780e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Simulation completed successfully\n"
]
},
{
"data": {
"text/plain": [
""
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"run_simulation(test1)\n"
]
},
{
"cell_type": "code",
"execution_count": 39,
"id": "0d59a364",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Simulation completed successfully\n"
]
},
{
"data": {
"text/plain": [
""
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"run_simulation(test_homogeneous_col_porosity)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"id": "139c98f1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[]"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/svg+xml": [
"\r\n",
"\r\n",
"\r\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"time = test1.root.output.solution.solution_times\n",
"c_out = test1.root.output.solution.unit_001.solution_outlet\n",
"time_hom = test_homogeneous_col_porosity.root.output.solution.solution_times\n",
"c_out_hom = test_homogeneous_col_porosity.root.output.solution.unit_001.solution_outlet\n",
"\n",
"plt.figure()\n",
"plt.title('Durchbruchskurve')\n",
"plt.xlabel('$Zeit~/~Tage$')\n",
"plt.ylabel('$Konzentration~/~ mg/l $')\n",
"plt.plot(time/86400, c_out, color = 'r', label='$c_{out}$') \n",
"plt.plot(time_hom/86400, c_out_hom, color = 'green', label='$c_{out}$') "
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "fc76ba43",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.15"
}
},
"nbformat": 4,
"nbformat_minor": 5
}