{ "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", " \r\n", " \r\n", " \r\n", " \r\n", " 2023-03-29T13:51:52.326318\r\n", " image/svg+xml\r\n", " \r\n", " \r\n", " Matplotlib v3.4.3, https://matplotlib.org/\r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \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 }