solid_cells_ogrid_chemistry

Module

Description

$Id$

This modules addes chemical species and reactions. The units used in the chem.in files are cm3,mole,sec,kcal and K This was found out by comparing the mechanism found in samples/0D/chemistry_H2_ignition_delay with Flow Reactor Studies and Kinetic Modeling of the ReactionH/O22 of A. MUELLER, T. J. KIM, R. A. YETTER, F. L. DRYER

** AUTOMATIC CPARAM.INC GENERATION ************************ Declare (for generation of cparam.inc) the number of f array variables and auxiliary variables added by this CPARAM logical, parameter :: lchemistry = .true.

MVAR CONTRIBUTION 1 MAUX CONTRIBUTION 2

PENCILS PROVIDED cv; cv1; cp; cp1; glncp(3) PENCILS PROVIDED nu; gradnu(3) PENCILS PROVIDED DYDt_reac(nchemspec); DYDt_diff(nchemspec) PENCILS PROVIDED lambda; glambda(3) PENCILS PROVIDED Diff_penc_add(nchemspec); H0_RT(nchemspec); hhk_full(nchemspec) PENCILS PROVIDED ghhk(3,nchemspec); S0_R(nchemspec)

Quick access

Variables:

a_k4, alpha_n, amplchem, amplchemk, amplchemk2, b_n, back, chem_diff, chem_diff_prefactor, cp_r_spec_ogrid, e_an, file_name, flame_pos, global_phi, high_coeff, i_co, i_co2, iaa1, iaa2, idiag_cpm, idiag_diffm, idiag_dtchem, idiag_dym, idiag_dymax, idiag_e_intm, idiag_hm, idiag_lambdam, idiag_ym, idiag_ymax, idiag_ymin, idiag_ymz, init_from_file, init_pressure, init_rho, init_rho2, init_uy, init_uz, init_y1, init_y2, init_z1, init_z2, init_zz1, init_zz2, initchem, initial_massfractions, itemp1, itemp2, itemp3, kx_chem, ky_chem, kz_chem, ladvection, lamb_low, lamb_up, lchem_cdtc, lcheminp, lco, lco2, ldiff_corr, ldiffusion, lfilter, lfilter_strict, lflame_front, linit_density, linit_temperature, lmech_simple, lmobility, ln2, lo2, low_coeff, lt_const, lthcond_simple, m_c, m_h2o, mobility, mplus_case, nreactions, nu_spec, orders_m, orders_p, photochem_case, pr_turb, prerun_directory, reac_rate_method, reinitialize_chemistry, sijm, sijp, stoichio, tran_exist, troe_coeff, widthchem, y_h2o

Routines:

air_field_ogr(), calc_diffusion_term_ogrid(), calc_for_chem_mixture_ogrid(), calc_heatcond_chemistry_ogrid(), calc_heter_reaction_term(), calc_pencils_chemistry_ogrid(), calc_pencils_eos_ogrid_chem(), calc_reaction_term_ogr(), chemspec_normalization_n2_og(), chemspec_normalization_og(), dyk_dt_ogrid(), get_reac_rate_ogr(), get_reaction_rate_ogr(), getmu_array_ogrid(), initialize_chemistry_og(), initialize_eos_chemistry(), rprint_chemistry_og()

Needed modules

Variables

  • solid_cells_ogrid_chemistry/a_k4 (*,*) [real,pointer]
  • solid_cells_ogrid_chemistry/alpha_n (*) [real,pointer]
  • solid_cells_ogrid_chemistry/amplchem [real,optional/default=1.0]
  • solid_cells_ogrid_chemistry/amplchemk (nchemspec) [real,optional/default=0.]
  • solid_cells_ogrid_chemistry/amplchemk2 (nchemspec) [real,optional/default=0.]
  • solid_cells_ogrid_chemistry/b_n (*) [real,pointer]
  • solid_cells_ogrid_chemistry/back (*) [logical,pointer]
  • solid_cells_ogrid_chemistry/chem_diff [real,optional/default=0.0]
  • solid_cells_ogrid_chemistry/chem_diff_prefactor (nchemspec) [real,optional/default=1.]
  • solid_cells_ogrid_chemistry/cp_r_spec_ogrid (mx_ogrid,my_ogrid,mz_ogrid,nchemspec) [real]
  • solid_cells_ogrid_chemistry/e_an (*) [real,pointer]
  • solid_cells_ogrid_chemistry/file_name [character,optional/default='nothing']
  • solid_cells_ogrid_chemistry/flame_pos [real,optional/default=0.0]
  • solid_cells_ogrid_chemistry/global_phi [real,optional/default=impossible]
  • solid_cells_ogrid_chemistry/high_coeff (*,*) [real,pointer]
  • solid_cells_ogrid_chemistry/i_co [integer,optional/default=0]
  • solid_cells_ogrid_chemistry/i_co2 [integer,optional/default=0]
  • solid_cells_ogrid_chemistry/iaa1 (*) [integer,pointer]
  • solid_cells_ogrid_chemistry/iaa2 (*) [integer,pointer]
  • solid_cells_ogrid_chemistry/idiag_cpm (nchemspec) [integer,optional/default=0]

    DIAG_DOC: $left<c_{p,x}right>$

  • solid_cells_ogrid_chemistry/idiag_diffm (nchemspec) [integer,optional/default=0]

    DIAG_DOC: $left<D_{x}right>$

  • solid_cells_ogrid_chemistry/idiag_dtchem [integer,optional/default=0]

    DIAG_DOC: $dt_{chem}$

  • solid_cells_ogrid_chemistry/idiag_dym (nchemspec) [integer,optional/default=0]

    DIAG_DOC: $deltaleft<Y_xright>/delta t$

  • solid_cells_ogrid_chemistry/idiag_dymax (nchemspec) [integer,optional/default=0]

    DIAG_DOC: $maxdeltaleft<Y_xright>/delta t$

  • solid_cells_ogrid_chemistry/idiag_e_intm [integer,optional/default=0]
  • solid_cells_ogrid_chemistry/idiag_hm (nchemspec) [integer,optional/default=0]

    DIAG_DOC: $left<H_{x,max}right>$

  • solid_cells_ogrid_chemistry/idiag_lambdam [integer,optional/default=0]
  • solid_cells_ogrid_chemistry/idiag_num [integer,optional/default=0]
  • solid_cells_ogrid_chemistry/idiag_ym (nchemspec) [integer,optional/default=0]

    DIAG_DOC: $left<Y_xright>$

  • solid_cells_ogrid_chemistry/idiag_ymax (nchemspec) [integer,optional/default=0]

    DIAG_DOC: $left<Y_{x,max}right>$

  • solid_cells_ogrid_chemistry/idiag_ymin (nchemspec) [integer,optional/default=0]

    DIAG_DOC: $left<Y_{x,min}right>$

  • solid_cells_ogrid_chemistry/idiag_ymz (nchemspec) [integer,optional/default=0]

    DIAG_DOC: $left<Y_xright>_{xy}(z)$

  • solid_cells_ogrid_chemistry/init_from_file [logical]
  • solid_cells_ogrid_chemistry/init_pressure [real,optional/default=1013000.0]
  • solid_cells_ogrid_chemistry/init_rho [real,optional/default=1.0]
  • solid_cells_ogrid_chemistry/init_rho2 [real,optional/default=1.0]
  • solid_cells_ogrid_chemistry/init_tt1 [real,optional/default=298.0]
  • solid_cells_ogrid_chemistry/init_tt2 [real,optional/default=2400.0]
  • solid_cells_ogrid_chemistry/init_ux [real,optional/default=0.0]
  • solid_cells_ogrid_chemistry/init_uy [real,optional/default=0.0]
  • solid_cells_ogrid_chemistry/init_uz [real,optional/default=0.0]
  • solid_cells_ogrid_chemistry/init_x1 [real,optional/default=-0.2]
  • solid_cells_ogrid_chemistry/init_x2 [real,optional/default=0.2]
  • solid_cells_ogrid_chemistry/init_y1 [real,optional/default=-0.2]
  • solid_cells_ogrid_chemistry/init_y2 [real,optional/default=0.2]
  • solid_cells_ogrid_chemistry/init_z1 [real,optional/default=-0.2]
  • solid_cells_ogrid_chemistry/init_z2 [real,optional/default=0.2]
  • solid_cells_ogrid_chemistry/init_zz1 [real,optional/default=0.01]
  • solid_cells_ogrid_chemistry/init_zz2 [real,optional/default=0.2]
  • solid_cells_ogrid_chemistry/initchem (ninit) [character,optional/default='nothing']
  • solid_cells_ogrid_chemistry/initial_massfractions (nchemspec) [real]
  • solid_cells_ogrid_chemistry/itemp1 [integer,optional/default=2]
  • solid_cells_ogrid_chemistry/itemp2 [integer,optional/default=3]
  • solid_cells_ogrid_chemistry/itemp3 [integer,optional/default=4]
  • solid_cells_ogrid_chemistry/kx_chem [real,optional/default=1.0]
  • solid_cells_ogrid_chemistry/ky_chem [real,optional/default=1.0]
  • solid_cells_ogrid_chemistry/kz_chem [real,optional/default=1.0]
  • solid_cells_ogrid_chemistry/ladvection [logical,pointer]
  • solid_cells_ogrid_chemistry/lamb_low [real]
  • solid_cells_ogrid_chemistry/lamb_up [real]
  • solid_cells_ogrid_chemistry/lchem_cdtc [logical,optional/default=.false.]
  • solid_cells_ogrid_chemistry/lcheminp [logical,pointer]
  • solid_cells_ogrid_chemistry/lco [logical,optional/default=.false.]
  • solid_cells_ogrid_chemistry/lco2 [logical,optional/default=.false.]
  • solid_cells_ogrid_chemistry/ldiff_corr [logical,pointer]
  • solid_cells_ogrid_chemistry/ldiffusion [logical,pointer]
  • solid_cells_ogrid_chemistry/lfilter [logical,pointer]
  • solid_cells_ogrid_chemistry/lfilter_strict [logical,pointer]
  • solid_cells_ogrid_chemistry/lflame_front [logical,optional/default=.false.]
  • solid_cells_ogrid_chemistry/linit_density [logical,optional/default=.false.]
  • solid_cells_ogrid_chemistry/linit_temperature [logical,optional/default=.false.]
  • solid_cells_ogrid_chemistry/lmech_simple [logical,pointer]
  • solid_cells_ogrid_chemistry/lmobility [logical,optional/default=.false.]
  • solid_cells_ogrid_chemistry/ln2 [logical,optional/default=.false.]
  • solid_cells_ogrid_chemistry/lo2 [logical,optional/default=.false.]
  • solid_cells_ogrid_chemistry/low_coeff (*,*) [real,pointer]
  • solid_cells_ogrid_chemistry/lt_const [logical,pointer]
  • solid_cells_ogrid_chemistry/lt_tanh [logical,optional/default=.false.]
  • solid_cells_ogrid_chemistry/lthcond_simple [logical,pointer]
  • solid_cells_ogrid_chemistry/m_c [real,optional/default=12.0107]
  • solid_cells_ogrid_chemistry/m_h2o [real,pointer]
  • solid_cells_ogrid_chemistry/mobility (nchemspec) [real,optional/default=1.]
  • solid_cells_ogrid_chemistry/mplus_case (*) [logical,pointer]
  • solid_cells_ogrid_chemistry/nreactions [integer,pointer]
  • solid_cells_ogrid_chemistry/nu_spec (nchemspec) [real,optional/default=0.]
  • solid_cells_ogrid_chemistry/orders_m (*,*) [real,pointer]
  • solid_cells_ogrid_chemistry/orders_p (*,*) [real,pointer]
  • solid_cells_ogrid_chemistry/photochem_case (*) [logical,pointer]
  • solid_cells_ogrid_chemistry/pr_turb [real,optional/default=0.7]
  • solid_cells_ogrid_chemistry/prerun_directory [character,optional/default='nothing']
  • solid_cells_ogrid_chemistry/reac_rate_method [character,optional/default='chemkin']
  • solid_cells_ogrid_chemistry/reinitialize_chemistry [logical,optional/default=.false.]
  • solid_cells_ogrid_chemistry/rgas_unit_sys [real,optional/default=1.0]
  • solid_cells_ogrid_chemistry/sijm (*,*) [real,pointer]
  • solid_cells_ogrid_chemistry/sijp (*,*) [real,pointer]
  • solid_cells_ogrid_chemistry/stoichio (*,*) [real,pointer]
  • solid_cells_ogrid_chemistry/str_thick [real,optional/default=0.02]
  • solid_cells_ogrid_chemistry/tran_exist [logical,pointer]
  • solid_cells_ogrid_chemistry/troe_coeff (*,*) [real,pointer]
  • solid_cells_ogrid_chemistry/widthchem [real,optional/default=1.0]
  • solid_cells_ogrid_chemistry/y_h2o [real,pointer]

Subroutines and functions

subroutine  solid_cells_ogrid_chemistry/initialize_eos_chemistry()

Initialize variable selection code (needed for RELOADing)

Called from:

initialize_solid_cells()

Call to:

not_implemented(), find_species_index(), fatal_error(), calc_reaction_term_ogr(), calc_diffusion_term_ogrid(), grad_ogrid(), del2_ogrid(), getmu_array_ogrid(), timing(), dot_mn_ogrid(), get_reac_rate_ogr(), get_reaction_rate_ogr(), stop_it()

subroutine  solid_cells_ogrid_chemistry/initialize_chemistry_og(f_og)

chemistry initialization on the ogrid called from initialize_solid_cells in solid_cells_ogrid

Parameters:

f_og (mx_ogrid,my_ogrid,mz_ogrid,mfarray_ogrid) [real]

Use :

sharedvariables (get_shared_variable(), put_shared_variable())

Called from:

initialize_solid_cells()

Call to:

not_implemented(), find_species_index(), fatal_error(), calc_reaction_term_ogr(), calc_diffusion_term_ogrid(), grad_ogrid(), del2_ogrid(), getmu_array_ogrid(), timing(), dot_mn_ogrid(), get_reac_rate_ogr(), get_reaction_rate_ogr(), stop_it()

subroutine  solid_cells_ogrid_chemistry/calc_pencils_chemistry_ogrid(f_og)

Calculate chemistry pencils. Most basic pencils should come first, as others may depend on them.

Parameters:

f_og (mx_ogrid,my_ogrid,mz_ogrid,mfarray_ogrid) [real,inout]

Called from:

in_solid_cell(), time_step_ogrid()

Call to:

calc_reaction_term_ogr(), calc_diffusion_term_ogrid(), fatal_error(), grad_ogrid(), del2_ogrid(), getmu_array_ogrid(), timing(), dot_mn_ogrid(), get_reac_rate_ogr(), get_reaction_rate_ogr(), find_species_index(), stop_it()

subroutine  solid_cells_ogrid_chemistry/calc_pencils_eos_ogrid_chem(f_og)
Parameters:

f_og (mx_ogrid,my_ogrid,mz_ogrid,mfarray_ogrid) [real]

Called from:

in_solid_cell(), time_step_ogrid()

Call to:

fatal_error(), grad_ogrid(), del2_ogrid(), getmu_array_ogrid(), timing(), dot_mn_ogrid(), get_reac_rate_ogr(), get_reaction_rate_ogr(), find_species_index(), stop_it()

subroutine  solid_cells_ogrid_chemistry/calc_for_chem_mixture_ogrid(f_og)

Calculate quantities for a mixture

Parameters:

f_og (mx_ogrid,my_ogrid,mz_ogrid,mfarray_ogrid) [real]

Called from:

in_solid_cell(), time_step_ogrid()

Call to:

getmu_array_ogrid(), timing(), grad_ogrid(), dot_mn_ogrid(), get_reac_rate_ogr(), get_reaction_rate_ogr(), del2_ogrid(), fatal_error(), find_species_index(), stop_it()

subroutine  solid_cells_ogrid_chemistry/dyk_dt_ogrid(f_og, df, dt_ogrid)

species transport equation calculate dYk/dt = - u.gradYk - div(rho*Yk*Vk)/rho + R/rho add chemistry contribution to temperature equation

Parameters:
Use :

diagnostics

Called from:

in_solid_cell(), time_step_ogrid()

Call to:

timing(), grad_ogrid(), dot_mn_ogrid(), get_reac_rate_ogr(), get_reaction_rate_ogr(), del2_ogrid(), fatal_error(), find_species_index(), stop_it()

subroutine  solid_cells_ogrid_chemistry/rprint_chemistry_og(lreset[, lwrite])

reads and registers print parameters relevant to chemistry

13-aug-07/steveb: coded

Parameters:
  • lreset [logical]

  • lwrite [logical]

Use :

diagnostics (parse_name()), general (itoa(), get_species_nr())

Call to:

get_reaction_rate_ogr(), del2_ogrid(), grad_ogrid(), dot_mn_ogrid(), fatal_error(), find_species_index(), stop_it()

subroutine  solid_cells_ogrid_chemistry/get_reaction_rate_ogr(f_og, vreact_p, vreact_m, p_ogrid)

This subroutine calculates forward and reverse reaction rates, if chem.inp file exists. For more details see Chemkin Theory Manual

NILS: This routine is by far the most CPU intencive routine in the code, NILS: so one should maybe put some effort into optimizing it more.

17-mar-08/natalia: coded 11-nov-10/julien: optimized, reaction rates are calculated under a

logarithmic form

Parameters:
Called from:

calc_pencils_chemistry_ogrid(), calc_pencils_eos_ogrid_chem(), calc_for_chem_mixture_ogrid(), dyk_dt_ogrid(), initialize_eos_chemistry(), initialize_chemistry_og(), rprint_chemistry_og(), get_reaction_rate_ogr(), calc_reaction_term_ogr()

Call to:

get_reaction_rate_ogr(), del2_ogrid(), grad_ogrid(), dot_mn_ogrid(), fatal_error(), find_species_index(), stop_it()

subroutine  solid_cells_ogrid_chemistry/calc_reaction_term_ogr(f_og, p_ogrid)

Calculation of the reaction term

Parameters:
Use :

diagnostics (sum_mn_name(), max_mn_name())

Called from:

calc_pencils_chemistry_ogrid(), initialize_eos_chemistry(), initialize_chemistry_og()

Call to:

get_reaction_rate_ogr(), del2_ogrid(), grad_ogrid(), dot_mn_ogrid(), fatal_error(), find_species_index(), stop_it()

subroutine  solid_cells_ogrid_chemistry/calc_heter_reaction_term(f_og)

Calculation of the heterogeneous reaction term

Parameters:

f_og (mx_ogrid,my_ogrid,mz_ogrid,mfarray_ogrid) [real,inout]

Called from:

in_solid_cell(), time_step_ogrid()

Call to:

del2_ogrid(), grad_ogrid(), dot_mn_ogrid(), fatal_error(), find_species_index(), stop_it()

subroutine  solid_cells_ogrid_chemistry/calc_diffusion_term_ogrid(f_og, p_ogrid)

Calculate diffusion term, p%DYDt_diff

Parameters:
Called from:

calc_pencils_chemistry_ogrid(), initialize_eos_chemistry(), initialize_chemistry_og()

Call to:

del2_ogrid(), grad_ogrid(), dot_mn_ogrid(), fatal_error(), find_species_index(), stop_it()

subroutine  solid_cells_ogrid_chemistry/calc_heatcond_chemistry_ogrid(f_og, df)

Calculate gamma*chi*(del2lnT+gradlnTT.grad(lnT+lnrho+lncp+lnchi))

Parameters:
Use :

sub (dot())

Called from:

in_solid_cell(), time_step_ogrid()

Call to:

fatal_error(), find_species_index(), stop_it()

subroutine  solid_cells_ogrid_chemistry/air_field_ogr(f_og, pp)
Parameters:
Call to:

fatal_error(), find_species_index(), stop_it()

subroutine  solid_cells_ogrid_chemistry/get_reac_rate_ogr(f_og, p_ogrid)
Parameters:
Called from:

calc_pencils_chemistry_ogrid(), calc_pencils_eos_ogrid_chem(), calc_for_chem_mixture_ogrid(), dyk_dt_ogrid(), initialize_eos_chemistry(), initialize_chemistry_og()

Call to:

find_species_index()

subroutine  solid_cells_ogrid_chemistry/getmu_array_ogrid(f_og, mu1_full_og)

Calculate mean molecular weight

Parameters:
Called from:

calc_pencils_chemistry_ogrid(), calc_pencils_eos_ogrid_chem(), calc_for_chem_mixture_ogrid(), initialize_eos_chemistry(), initialize_chemistry_og()

Call to:

find_species_index()

subroutine  solid_cells_ogrid_chemistry/chemspec_normalization_og(f_og)

20-sep-10/Natalia: coded renormalization of the species

Parameters:

f_og (mx_ogrid,my_ogrid,mz_ogrid,mfarray_ogrid) [real]

Call to:

find_species_index()

subroutine  solid_cells_ogrid_chemistry/chemspec_normalization_n2_og(f_og)
Parameters:

f_og (mx_ogrid,my_ogrid,mz_ogrid,mfarray_ogrid) [real]

Called from:

in_solid_cell(), time_step_ogrid()

Call to:

find_species_index()