27
Computer Physics Communications 135 (2001) 105–131 www.elsevier.nl/locate/cpc PLASMAKIN: A chemical kinetics library for plasma physics modeling Nuno R. Pinhão Instituto Tecnológico e Nuclear, Estrada Nacional 10, 2686-953 Sacavém, Portugal Received 14 March 2000; received in revised form 7 November 2000; accepted 12 November 2000 Abstract PLASMAKIN is a software library to handle physical and chemical data used in plasma physics modeling and to compute kinetics data from the reactions taking place in the gas or at the surfaces — particle generation and loss rates, photon emission rates and energy exchange rates. PLASMAKIN supports any number of chemical species and reactions, is independent of problem dimensions and can be used both in stationary and time-dependent problems. PLASMAKIN supports a large number of species properties and reaction types. Namely gas or electron temperature dependent collision rate coefficients, vibrational and cascade levels, evaluation of branching ratios, superelastic and other reverse processes, three-body collisions, radiation imprisonment and photoelectric emission. Non-standard rate coefficient functions can be handled by a user supplied routine. The interaction of the user with the library is limited to the preparation of an input file characterizing the interacting species and reactions, accessing the data or the chemical kinetics results through a reduced number of procedure calls with similar interfaces. PLASMAKIN allows the user to concentrate on the physical nature of the problems independently of the gas mixture properties and reactions model. As an example a program has been prepared to evaluate the maintenance field, equilibrium populations, relative contribution of each reaction, photon emission spectra and the energy losses rates on the positive column region of a discharge in electropositive gases. The program is applied to a discharge in neon. The library is written in Fortran 95 and has error support. 2001 Elsevier Science B.V. All rights reserved. PACS: 52.80s; 82.40.Ra; 47.70.Fw Keywords: Electrical discharges; Plasma physics; Chemical kinetics; Chemical reactions; Gaseous electronics; Cold plasma PROGRAM SUMMARY Title of program: PLASMAKIN Catalogue identifier: ADNH Program obtainable from: CPC Program Library, Queen’s Univer- sity of Belfast, N. Ireland Program summary URL: http://www.cpc.cs.qub.ac.uk/summaries/ ADNH E-mail address: [email protected] (N.R. Pinhão). 0010-4655/01/$ – see front matter 2001 Elsevier Science B.V. All rights reserved. PII:S0010-4655(00)00226-5

PLASMAKIN: A chemical kinetics library for plasma physics modeling

Embed Size (px)

Citation preview

Computer Physics Communications 135 (2001) 105–131www.elsevier.nl/locate/cpc

PLASMAKIN: A chemical kinetics libraryfor plasma physics modeling

Nuno R. PinhãoInstituto Tecnológico e Nuclear, Estrada Nacional 10, 2686-953 Sacavém, Portugal

Received 14 March 2000; received in revised form 7 November 2000; accepted 12 November 2000

Abstract

PLASMAKIN is a software library to handle physical and chemical data used in plasma physics modeling and to computekinetics data from the reactions taking place in the gas or at the surfaces — particle generation and loss rates, photon emissionrates and energy exchange rates. PLASMAKIN supports any number of chemical species and reactions, is independent ofproblem dimensions and can be used both in stationary and time-dependent problems.

PLASMAKIN supports a large number of species properties and reaction types. Namely gas or electron temperaturedependent collision rate coefficients, vibrational and cascade levels, evaluation of branching ratios, superelastic and other reverseprocesses, three-body collisions, radiation imprisonment and photoelectric emission. Non-standard rate coefficient functions canbe handled by a user supplied routine.

The interaction of the user with the library is limited to the preparation of an input file characterizing the interacting speciesand reactions, accessing the data or the chemical kinetics results through a reduced number of procedure calls with similarinterfaces.

PLASMAKIN allows the user to concentrate on the physical nature of the problems independently of the gas mixtureproperties and reactions model.

As an example a program has been prepared to evaluate the maintenance field, equilibrium populations, relative contributionof each reaction, photon emission spectra and the energy losses rates on the positive column region of a discharge inelectropositive gases. The program is applied to a discharge in neon.

The library is written in Fortran 95 and has error support. 2001 Elsevier Science B.V. All rights reserved.

PACS:52.80s; 82.40.Ra; 47.70.Fw

Keywords:Electrical discharges; Plasma physics; Chemical kinetics; Chemical reactions; Gaseous electronics; Cold plasma

PROGRAM SUMMARY

Title of program:PLASMAKIN

Catalogue identifier:ADNH

Program obtainable from:CPC Program Library, Queen’s Univer-sity of Belfast, N. Ireland

Program summary URL:http://www.cpc.cs.qub.ac.uk/summaries/ADNH

E-mail address:[email protected] (N.R. Pinhão).

0010-4655/01/$ – see front matter 2001 Elsevier Science B.V. All rights reserved.PII: S0010-4655(00)00226-5

106 N.R. Pinhão / Computer Physics Communications 135 (2001) 105–131

Licensing provisions:GNU Lesser General Public License

Computer for which the program is designed and others on which ithas been tested:

Computers:Alpha Workstations; PC

Operating systems under which the program has been tested:Tru64, Windows NT, Linux

Programming language used:Fortran 95

Memory required to execute with typical data:largely dependent ofproblem, the test program requires 512 words

No. of bits in a word:32

No. of bytes in distributed program, including test data, etc.:141 376

Distribution format:tar gzip file

Keywords:Electrical discharges, plasma physics, chemical kinetics,chemical reactions, gaseous electronics, cold plasma

Nature of physical problemA large number of problems in plasma physics involves the consid-eration of several chemical species and reactions. The solution ofsuch problems invariably requires the ability to read, classify, sortand manipulate particles and reactions and, frequently, the evalua-tion of source terms in chemical kinetic equations, the energy trans-fered by the electrons to the other particles, the gas heating due tocollisions or the photon emission spectra. The handling of these datafrequently represents a significant fraction of codes, development

and maintenance time and is a source of errors. It would clearly beadvantageous to have a package able to deal with that data indepen-dently of the number or nature of the species and chemical reactionsinvolved and of the problem being solved or the method used. Sucha package could be used as a “black box” moving the description ofparticles and reactions from code to a data file, allowing the user toconcentrate on the physical problem and on the algorithm to solveit. Once the code developed, it would allow an easy and fast modifi-cation and testing of chemical models

Method of solutionThe present library handles chemical species and reactions and com-putes the collision terms for particle and energy conservation equa-tions. The species and reactions are described in an ASCII externaldata file using a compact description language. Species properties,reaction data and the evaluation of the collisional terms of the con-servation equations are hidden from the calling programs allowingto build programs independents of the gas mixture or kinetic model.The included test program uses a modified Powell hybrid algorithmto solve systems of nonlinear equations.

Restrictions on the complexity of the problemThe maximum number of reactants or products taking part in a reac-tion has been limited to four; however this number can be changedmodifying a parameter constant. Ionic excited species are not sup-ported; three body collisions and surface reactions don’t support theselection of different species as, respectively, 3rd body or adsorbedreacting atom.

Typical running timeLargely dependent on problem, the test program takes some sec-onds.

Unusual features of the programSample program uses routine DNEQNF from IMSL library.

LONG WRITE-UP

1. Introduction

A large number of problems in plasma physics involves the consideration of several chemical species andreactions. From electron kinetics studies to collisional-radiative models or large multi-fluid and time dependentmodels, whichever the numerical method used, simulation of gas discharges invariably requires the reading,classification, sorting and manipulation of particles and reactions and, frequently, the evaluation of particle sourceand loss terms in chemical kinetic equations and the rates of energy exchange among species in collisions.

The handling of these data frequently represents a significant fraction of codes, development time and effort, andis a source of errors. It would clearly be advantageous to have a library able to deal with these data independentlyof the number or nature of the species, chemical reactions involved, the nature of the problem being solved or themethod used. Such a package could be used as a “black box” moving the description of particles and reactions

N.R. Pinhão / Computer Physics Communications 135 (2001) 105–131 107

from code to a data file, allowing the user to concentrate on the algorithm, and once the code developed, an easymodification and fast testing of chemical models.

The need of a “language” to write chemical reactions and the computation of kinetic terms in a generic way isa subject of very broad application and several approaches have been developed. Packages have been publishedthat are directed to specific fields — plasma physics [1]; atmospheric chemistry [2,3] — or to general purposechemistry [4].

All of the above packages include ODE solvers. However only the last one evaluates the energy exchange rates;the first one does not include surface reactions, the atmospheric chemistry codes do not cover the needs of plasmaphysics and the last, although quite complete, is a proprietary, commercial product.

As a significant number of processes in cold plasma discharges occur in non-thermodynamic equilibrium condi-tions, it is frequently necessary to consider not only the macroscopic conservation equations — particle, momentumand energy conservation — but also the Boltzmann equation. In particular in molecular gases where superelasticcollisions are important, the electron Boltzmann equation is linked to the chemical kinetics and both problems mustbe solved consistently. This requires the input of more data than just the data needed for the chemical kinetics.

PLASMAKIN was designed to provide a common framework to handle particle properties and reaction dataneeded for plasma physics modeling, independently of the number of space dimensions of the problem. At thesame time it was decided not to include any ODE or PDE solver, leaving this choice to the user.

These design options allow PLASMAKIN to be used in rather different problems, with a large range of codes— Boltzmann equation solvers, collisional-radiative codes, fluid and hybrid codes, Monte Carlo or PIC codes —and not become “obsolescent” due to the continuous evolution of numerical algorithms.

The following sections give a detailed description of requirements defined to PLASMAKIN, the architecturaldesign including the library structure and the data model, the public variables and procedures interfaces, an exampleof usage of the library, finishing with a summary and discussion of future developments. The data files used for thetest program are listed in the Appendix.

Further detailed instructions for library usage can be found at the address http://newton.itn.pt/GE; a copy of theseinstructions due also held in its CPC program library together with PLASMAKIN.

2. Requirements analysis

2.1. Conservation equations

The analysis of a plasma medium is complicated because the charged particles are both affected by externalelectromagnetic fields and contribute to them. The equations governing such systems involve one or more ofMaxwell’s equations and conservation equations for the particles.

When it is possible to consider the inter-particle collisions independently of the fields, we arrive todistributionfunctionsf (�r, �v, t) of particles in a six-dimensionalphase space(�r, �v) obeying Boltzmann equation:

∂f

∂t+ ∇r

(�vf )+ ∇v( �γ f )= f |c, (1)

where �γ the acceleration due to external forces andf |c the collision operator accounting for all collisionalprocesses in the gas mixture.

In most problems atomic and molecular species are in thermodynamic equilibrium with the gas, havinga Maxwellian distribution. Ions also exchange energy efficiently with the neutrals and usually have a quasi-Maxwellian distribution with a slightly higher temperature than the neutral gas. However as the energy loss bythe electrons in an elastic collision with an atom is very small (in the order ofme/M, whereme andM are theelectron and atom mass), under the influence of a electric field�E the electrons can obtain very high energies. Inthis case the electron velocity distribution is not Maxwellian and must be obtained solving (1).

Consequently we are not usually interested in all the information contained in (1) and the complexity ofthe problem can be reduced taking the velocity moments of the distribution functions in order to obtain

108 N.R. Pinhão / Computer Physics Communications 135 (2001) 105–131

macroscopic quantities — species densityn, particle fluxn�u (where �u is the mean velocity), energy densityw(w= 3

2p+ n12mu

2, wherep is the isotropic pressure), etc.Even for the electrons, in regions where the electrical field gradients or time variations are “smooth” a solution

of a problem can be found in two steps:(i) Solve the electron Boltzmann equation for constant reduced electrical fieldE/N (whereN is the gas

density) obtaining electron transport parameters and rate coefficients as a function ofE/N or the electronmean energy.1

(ii) Use these transport parameters and rate coefficients in the macroscopic conservation equations.These steps can be executed once or, if the electron Boltzmann equation includes superelastic or other terms

involving species whose concentration depends on the macroscopic equations, the electron Boltzmann equationand the system of macroscopic conservation equation are consecutively solved until convergence.

The first three moments of Eq. (1) are, respectively, the conservation equations for particle density, momentumand energy:

∂n

∂t+ ∇ · (n�u)= G −L, (2)

nm

[∂ �u∂t

+ (�u · ∇)�u]

= qn �E− ∇p− nmνm �u−m�u(G −L), (3)

∂w

∂t+ ∇ · (w�u)= qn�u · �E − ∇p · �u+ ∇ · �q + ∂w

∂t

∣∣∣∣c

, (4)

whereG andL are gain and loss terms by collisions,νm is the momentum transfer frequency,�q the heat flowvector,�q = −KT∇T ,KT the species thermal conductivity and magnetic forces have been neglected. The last termof the right hand side of Eq. (4) is the energy exchange rate by collisions.

For neutral species in thermodynamic equilibrium, the continuity equation (2) (with�u= 0) is sufficient to givethe evolution of the densityns . Ions are acted by the electrical field and at least Eq. (3) is also needed.

Finally, a thermal balance equation deduced from (4), can be added to the above system to account for gasheating. In this equation intervenes the species heat capacity at constant pressureCp or volumeCv and the thermalconductivityKT .

Depending on the type of the problem, the above equations are subject to further simplifications.2 However forthe purpose of identifying the role of PLASMAKIN the above expressions are sufficient:

PLASMAKIN evaluates theG andL terms of Eqs. (2)–(3) and the collisional energy loss term on the right handside of Eq. (4) for electrons and for gas heating. Additionally it provides information on the relative contribution ofeach reaction to these terms and the photon emission spectra. Finally PLASMAKIN facilitates the reading of otherdata needed to evaluate Eqs. (1)–(4).

The analysis of these terms and the collisions processes taking place in the gas and at the walls allows tocharacterize the data handled by PLASMAKIN, the library design and the data input format.

2.2. Global data

The study of any problems requires the knowledge of constant or initial values of state variables. The choice ofstate variables depending on the problem in analysis.

In plasma reactors most processes occur at constant pressure. In this case the most convenient state variablesto describe the system are the pressurep, and the species temperatureTs and concentrationns . However plasma

1 The former case is known as theLocal Field Approximationand assumes that the distribution function in a given point and instant onlydepends on the local value ofE/N . The second case is known asLocal Mean Energy Approximation.

2 In particular for slow time variation and neglecting the inertial and the last term of the right hand side of Eq. (3) the fluxn�u isn�u= ±nµ �E −D∇n, whereµ is the mobility andD a diffusion coefficient.

N.R. Pinhão / Computer Physics Communications 135 (2001) 105–131 109

discharges also occur in constant volume conditions. In this case it is usually a good approximation to take the totaldensityN constant and use(N,Ts, ns) as state variables. The two cases must be distinguished in the data inputfile.

An additional simplification used in PLASMAKIN is the assumption that all species except the electrons, sharea common initial temperatureTg . Electrons have an initial temperatureTe. These gas and electron temperatures areneeded to evaluate the initial values of temperature dependent rate coefficients.

2.3. Chemical species

A plasma discharge originates a rich set of species — neutral atoms and molecules in fundamental and excitedstates, electrons, positive and negative ions, photons and, when surface reactions are involved, adsorbed atoms. Thenumber and type of species and reactions is highly dependent of the kinetic model and PLASMAKIN support anynumber of species and reactions.

These species must be identified and, depending on the problem in analysis, the values of several speciesproperties must be input. A total of 18 properties have been identified and the names of the corresponding variablesin PLASMAKIN are listed in Section 3.2.2. Some of these properties are common to all particles while others aremeaningful only to some species. The indication of some of these properties allows the library routines to perform“clever guesses” about the values of other species or reactions properties, overall reducing the amount of data inputand the possibility of errors.3

The list of properties include the name, whether the concentration is constant, the charge stateq , the massMs , thedegeneracygj of an excited level, the excitation or ionisation energyεj or the standard molar formation enthalpyHf ,

4 the specific heat capacityCp or Cv , the thermal conductivityKT , the vibrational quantum numberv, thevibrational frequencyω and temperatureTv , the anharmonicity parameterζe, the rotational constant, the dipolaror quadrupolar momentum, the initial concentration, an index identifying a used defined numerical scheme for theconservation equations for that species, whether the species is to be considered a cascade level and a data structureallowing the reading of other properties in an external file (see Sections 2.5 and 3.2 for details).

2.3.1. Vibrational levelsVibrationally excited species deserve a special attention — vibrational levels associated to the same electronic

quantum number only differ in vibrational quantum number and relative populations,δs,v. The initial relativepopulations can be estimated using a Treanor distribution [5] or, more accurately, a Gordiets–Treanor distribution[6],

δs,v =

exp

[−v(ε1,0

kBTv− (v− 1) ζeθ

Tg

)], v � v∗,

δs,v∗ · v∗

v, v∗ � v � v∗∗,

exp

(− εv

kBTg

), v > v∗∗ ,

(5)

whereε1,0 = h̄ω(1 − 2ζe) is the energy for the first transition,θ = h̄ω/kB andv∗ = 12(1 + ε1,0

kBθ1

Tgζeθ) is the value

for which the Treanor distribution has a minimum.As the number of vibrational levels can be high, PLASMAKIN is able to evaluate the species forming a

vibrational series from the properties of the corresponding electronic level and the lower and upper limits ofv.In this case the vibrational species are created with a name formed concatenating the electronic level name with

3 As an example, the energy of an excited level is used to compute the energy lost by the electrons in collision producing that level or thekinetic energy released to the gas in a Penning ionisation.

4 At p= 105 Pa andT = 298.15 K.

110 N.R. Pinhão / Computer Physics Communications 135 (2001) 105–131

“ (v = i)”, where i is the correspondent vibrational number. The initial relative population of these levels areevaluated from (5).

2.4. Chemical reaction

2.4.1. Unimolecular reactionsOptical emission and absorption are examples of unimolecular reactions important in plasma physics. The

reaction rates for spontaneous emission in termsG andL have the simple formAn, whereA is the Einsteinspontaneous emission coefficient, in units ofT −1. The emitted optical power density isAnε, whereε is the photonenergy.

Radiation imprisonment If the density of species at the lower level of the optical transition is sufficiently high,the resonance photon can be absorbed before escaping the system, resulting in a reduction of the apparent emissioncoefficient. Doppler effect or collisions contribute to a broadening of the natural line width and the importance ofthis broadening depends on gas density. An effective Einstein coefficientAeff is defined as the product

Aeff(�r)=Aη(�r), (6)

whereη(�r) is an escape factor [7] representing the probability of a photon emitted at�r to escape from the systemand depends on gas properties, imprisonment process and geometry. For cylindrical, one-dimensional problemsand for each type of line broadening, this escape factor is proportional to an universal geometrical function,η(ρ)= T (R) · Γ (ρ/R) whereT (R) is the transmission probability to the boundary, andR the cylinder radius [8].

In Holstein theory or when using “volume averaged” values, expression (6) is simplified and replaced by

Aeff =A · g, (7)

whereg is the trapping factor.As the escape factor depends on several gas properties, it is advantageous to split the data needed to handle

these transitions in two reactions — one corresponding to the natural emission,B∗ → B + γ , with rateA, and theother corresponding to radiation imprisonment and written as the reaction,B + γ → B∗. In this case the “reactioncoefficient” is the trapping factorg or, if we are interested in the space dependence ofAeff, the transmissionprobabilityT (R). In the later case we must also indicate a vector with values of the functionΓ .

Cascade levels When the single decay mechanism of a radiative levels is the spontaneous emission to otherlevels and we are not interested to follow his density, it can be neglected, provided that the source termG for thislevel, weighted by the appropriate branching ratios is taken into account in the source terms of the lower levelspopulations.

The branching ratios,1ij , are evaluated taking the radiative transition probabilities from the cascade level (withindexi) to the lower levels (indexesj andk):

1ij = Aij∑k Aik

. (8)

The formation of radiative cascade levels usually occur by bimolecular reactions but can also results from anothercascade level. To take this into account, PLASMAKIN uses recursive routines whenever cascade levels areinvolved.

2.4.2. Bimolecular reactionsA large number of forward rate coefficients have an Arrhenius temperature dependence,

ki =KiT βig exp

(− εi

kBTg

), (9)

whereKi , βi andεi characterize the reaction.

N.R. Pinhão / Computer Physics Communications 135 (2001) 105–131 111

However reactions in plasma can have more complex temperature dependencies or, as is the case for electroncollision reactions, depend on the electron temperature. To accommodate this, PLASMAKIN assumes a powerseries dependence on temperature in the exponential term of rate coefficients:

ki = α0i T

β0i exp

(5∑j=1

αji

T βji

), (10)

whereT is the electron temperatureTe for electron collision reactions andTg for other cases. The rate coefficientsare characterized by the twelve parameters(αj ,βj , j = 0, . . . ,5), that are listed in the data input file. Initialtemperature values are read in a data file but can also be changed during program execution.

Finally, to accommodate more complex rate expressions or rate coefficients known as a function of the reducedfield E/N or mean energyε (as is frequently the case for electron rate coefficients), individual rate values can beset during program execution.

The electrons loss energy in elastic and inelastic collisions and gain energy in superelastic collisions. The energyexchange rate is the productεj ksjnens whereεj is the energy exchanged in each process:

Elastic collisions: For slow electrons the dominant elastic process is short-range polarization scattering [9]. Asslow electrons usually dominate the energy distribution, this is the only elastic energy loss process considered.In this case the mean energy loss per electron is(3me/M)Te. 5

Attachment and recombination: When the electron is captured the energy loss is the electron average energy,(3/2)Te.

Other inelastic collisions: The energy exchanged is the excitation, ionisation or dissociation energy for theprocess.

Electron driven reactions can also result into heat by the formation of hot atoms or ions, subsequentlythermalized. However, the electron energy loss can not be determined from the species internal energy or reactionenthalpy and the description of the reaction must include this value. In this cases the energy converted into heat isthe difference between the total energy lost by the electrons and the reaction enthalpy.

The electron energy lost in elastic collisions is converted into heat and when an electron is captured, the energyconverted into random motion is(3/2)Te−Hr whereHr is the reaction enthalpy calculated from the enthalpies offormation of the reactants and products. For all other reactions, the energy converted into heat is−Hr .

As the gas temperature in cold plasmas is within a few hundred degrees ofT0, the formation enthalpy at gastemperature is not much higher than the standard value and is approximated byHf (Tg)=H

f (T0)+Cp1T .

Reactions with vibrational levelsA large number of reactions with vibrational levels are written in a similar way,the only difference being on the vibrational number(s). To avoid the need of writing all this reactions PLASMAKINis able to read a description of a group of vibrational reactions and to create the corresponding individual reactions.The vibrational levels involved are selected indicating a range of vibrational number(s) (see Section 3.2.2 for syntaxdetails).

Rate coefficients of V-T or V-V reactions with vibrational levels usually have complex expressions, involving thevibrational number(s). For homonuclear diatomic molecules the most frequently used theory is the modified SSHtheory [10–13]. However, it frequently fails to give the correct values of absolute transition probabilities and thetheoretical expressions are used only to evaluate scale factors [14]. In this case rate coefficients must be calculatedby a user supplied routine.

5 Note that to evaluate the elastic energy loss the elastic collision reaction and the corresponding ratekel must be included.

112 N.R. Pinhão / Computer Physics Communications 135 (2001) 105–131

Reverse reactionsThe rate coefficient for forward and reverse reactions are related by the principle of detailedbalancing. Hence, once the forward rate,kf , is known, the reverse rate,kr (for a two-body collision,A+ B ↔C +D) is determined from

kf

kr=(µr

µf

)3/2gCgD

gAgBexp

(− εt

kBTg

), (11)

whereµf andµr are the reduced masses for particles in ‘forward’ and ‘reverse’ reactions,g the degeneracies ofthe energy levels andεt the energy change. For electron superelastic collisions this expression is simply

kf = kr · grgf

exp

(− (εr − εf )

kBTe

), (12)

whereεr andεf are the energy of, respectively, the upper and lower levels. For collisions between heavy particlesEq. (11) can be written using the Gibbs free energy for the reaction,G

r :

kf

kr= exp

(− G

r

RTg

), (13)

and, in this case the Gibbs free energy andkf are the only value needed to evaluate the reverse rate.If the mass, degeneracies and reaction energy or Gibbs free energy are known PLASMAKIN automatically

evaluates the reverse rates. The single information needed is an indication of which reverse reactions are considered.

2.4.3. Termolecular reactionsTwo types of pressure-dependent reactions are included — recombination reactions and chemically activated

bimolecular reactions.The first type are recombination reactions that can take place in one of the two following ways:

A+B +M ⇔AB +M (low pressure limit),

A+B⇔AB (high pressure limit).

In both cases the reaction rate has the Arrhenius form. However between the high and low pressure limits theexpression of the rate coefficient is a combination of the limit rates. In PLASMAKIN the Lindemann expression[15], modified by Troe [16] is used, relating the high and low pressure rates and the density of the 3rd body,[M].If k0 andk∞ are the low and high pressure coefficients,

k0 =A0Tβ0g exp

(− εo

KBTg

),

k∞ =A∞T β∞g exp

(− ε∞KBTg

),

the rate coefficient at any pressure is

k = k∞(

Pr

1+ Pr)

· F, (14)

wherePr is the reduced pressure, given by

Pr = k0[M]k∞

. (15)

F in the Lindemann original form is unity. Troe et al. [16] propose forF the expression

logF =[

1+[

logPr + cn− d · (logPr + c)

]2]−1

· logFcent, (16)

N.R. Pinhão / Computer Physics Communications 135 (2001) 105–131 113

with

c= −0.4− 0.67· logFcent,

n= −0.75− 1.27· logFcent,

d = 0.14,

Fcent= (1− α)exp

(− TgT ∗

)+ α exp

(Tg

T ∗∗

)+ exp

(−T

∗∗∗

Tg

).

(17)

The four parametersα,T ∗, T ∗∗ andT ∗∗∗, together with the parameters for each limit rate coefficient, characterizethe reaction. The reaction is treated as a two-body collision, with a pressure dependent rate coefficient.

In a bimolecular reaction two different products can be produced and the probability of producing each dependson the pressure, according to the following scheme:

A+B +M ⇔AB∗ +M ⇒ C +D +M (low pressure limit),

⇒AB +M (high pressure limit).

The rate coefficient for the first reaction is

k = k0

(1

1+ Pr)

· F, (18)

wherePr is (15) andF is the same function as for the Lindemann or Troe forms (16). The number of parametersneeded is the same as in the previous case. The selection of reaction type (and consequently between Eqs. (14) or(18)) is automatically done in PLASMAKIN looking into the number of reaction products.

2.4.4. Surface reactionsSurface reactions follow the general schemeA+Ws →Ws +B[+C + · · ·], whereWs stands for surfaces and

square brackets represent optional items. The rate terms have the general expressionkji ni , wherekji is the wall rate

coefficient for the production of speciesj from collisions of speciesi. The indication of a surface name allows todistinguish from gas reactions and differentiate between different surfaces.

Photoelectric emission from surfacesThe interaction of UV photons, produced in radiative transitions, withsurfaces can be an important source of electrons that influence the discharge build up and equilibrium. Thephotoelectric emission rate, dNe/dt , at a given point on a surface,s, due to photonsγk , is

dNe( �rs)

dt= γ phAk

∫V

T (S)n∗(�r, t)cos(�n, �ns

)4πS2

d�r, (19)

whereγ ph is the surface photoelectron emission coefficient,n∗ the density of the radiative level,(�n, �ns) the anglebetween the direction of incidence and the normal at the point of incidence andS = | �rs − �r|, the distance betweenthe points of incidence and emission.

In one-dimensional problems, the above volume integral can be reduced to an one-dimensional integral, and, fora cylindrical geometry, the previous equation written as [8],

dNedt

= γ phk AkT (R)

∫ΓE(ρ)n

∗(ρ)dρ, (20)

whereΓE is the probability of a photon to escape from the volume.The photoelectric emission can also be written as a reaction,γk +Ws →Ws + e. In this case the photoelectron

coefficient,γ ph, play the role of a rate coefficient. However, the escape probability depends on the number ofdimensions considered and, as for radiation imprisonment, PLASMAKIN reads and returns to the calling programan index and the name of a data file where the escape probability can be read.

114 N.R. Pinhão / Computer Physics Communications 135 (2001) 105–131

2.5. Other data

Solution of Eqs. (1)–(4) require the input of several properties that are not used on evaluation of the collisionterms. To facilitate program development and the consistency of the user interface, PLASMAKIN is able to readsome of these properties or, if these data is on another file, to pass this information to the calling program.

Species properties included in the first case are the rotational constant and dipolar or quadrupolar momentsused in solving the electron Boltzmann equation in molecular gases and the heat capacity and thermal condutivityneeded to solve the thermal balance equation.

Examples of data that must be listed in other file(s) are species transport parameters — drift velocity and diffusioncoefficient — electron collision rate coefficients given as a function ofE/N or Te, and energy dependent crosssections. In this case PLASMAKIN input file must include, for each species or reaction using external data, thename of the file and an index identifying the value or group of values in that file.

2.6. Units and unit conversion

In the general case, PLASMAKIN uses SI units for internal processing. The exceptions are the energy, where eVis used, and the vibrational frequency, where cm−1 is used.6 However several physical properties can be input inother units. In this case those unit must be indicated after the numerical value, as in normal writing. The conversionfactors between these units and the internal units are saved to allow the output of results in the initial units.

2.7. Error handling

A mechanism for handling errors is also included. All routine accept an optional dummy argument returning anerror code number. If that argument is not used, PLASMAKIN prints an error message. As most errors occur ondata file reading, the corresponding error messages indicates the index of the offendingnamelist. Among otherstests, the following properties are checked:

(i) Support for the physical units indicated in the data file;(ii) All species involved in chemical reactions are identified in anamelist;(iii) Sum of total initial concentrations is one (or 100%);(iv) Charge conservation in gas chemical reactions.

2.8. Other requirements

Models of plasma discharges can be built in any number of space dimensions or don’t even use space variables.In order to be of general use, PLASMAKIN is independent of the number of dimensions used.

As PLASMAKIN moves the description of species and reactions to a data file, the format and syntax for thisfile, and the parser reading the file, obey the following requirements:

• The data file is an ASCII text file, assuring portability between different systems and an easy generationthrough automatic writting tools;

• The species and reactions description language is based on standard chemical notation;• Data organisation and syntax is flexible, without limits such as fixed number of columns or lines;• The amount of data that must be written explicitly is minimized and the parser is able to deduce missing

values from the information available;• Default values are assumed for all properties.Finally, as many Fortran users still rely on Fortran 77 syntax or on legacy code, PLASMAKIN routine interfaces

follow Fortran 77 conventions and can be called from Fortran 77 code.7

6 In spectroscopy the vibrational frequency is traditionally measured in units ofν/c, with c the velocity of light.7 Note however, as PLASMAKIN is a module unit, these users must use the Fortran 90 “USE” instruction and a Fortran 90 capable compiler.

N.R. Pinhão / Computer Physics Communications 135 (2001) 105–131 115

3. Architectural design

PLASMAKIN has been influenced by the application of Object Oriented methodologies to Fortran [17,18].The programming paradigms ofabstraction, information hiding, data encapsulationand function overloadingwere followed as guidelines for the design of data types and routines and simplifies the future development ofPLASMAKIN or bindings for other languages.

3.1. Library structure

Fig. 1 represents the relationships between PLASMAKIN and other routines or data files. The library is a Fortran90 module unit with public and private data and procedures. With a single exception, the only public variables arescalars counters that may be used for array dimensioning and loop bounds and that must not be modified outsidethe module. Particle or reaction properties are only accessible through access routines allowing a strict control ofwhich data can be inquired or modified by the calling program. Although PLASMAKIN make extensive use ofderived data types, for compatibility with Fortran 77 code, all public data and procedure arguments are either ascalar or an array.

The module read his data from an input file and can call a user supplied routineSetRate, to evaluate complexrate reaction expressions, but is otherwise, self-contained.

Fig. 1. Schematic representation of the relationships between PLASMAKIN and other program units or data files. The arrows indicate thedirection of information flow.

116 N.R. Pinhão / Computer Physics Communications 135 (2001) 105–131

3.2. Data model

3.2.1. Public dataThe public variables are listed in Table 1 with an explanation of their meaning. The arrayKTable is used to

convert from the reaction internal indexes back to the reaction indexes used in the data input file.8

Although several derived data types are defined in PLASMAKIN, only two, used in data reading operations, arepublic. Even so they are not intended to be used outside the module and the only reason they are public is becausethey are used in aNAMELIST reading instruction. The hiding of data structures guarantees that future modificationof the data model has limited, if any, impact in the calling programs.

The two main derived data types arePARTICLE and REACTION_COEFFICIENT for, respectivelly, thecharacterization of chemical species and reactions. The syntax used to read these values throughNAMELISTinput closely follows their structure and is described bellow. The two public data types areDATA_COLUMN andPHYS_PROPERTY and have the following structure:

TYPE DATA_COLUMNCHARACTER(20) :: name ! Name of datafileINTEGER :: index ! Index of data in the file

END TYPE

TYPE PHYS_PROPERTYREAL(double) :: value

Table 1Public variables of PLASMAKIN and description. All variables are of type INTEGER. Default values are zero

Variable Description

NSpecies Total number of species

NnC N◦ of neutrals with constant concentration

NnV N◦ of non-excited neutrals with variable concentration

NnVX N◦ of neutrals with variable concentration

Nch N◦ of charged species

NnTV Total n◦ of variable concentration species (NnVX+Nch)

NPhot N◦ of different energy values of photons

NCasc N◦ of cascading species

NKReac N◦ of reaction coefficients

NKea N◦ of electron collision coefficients

NSKea N◦ of superelastic electron collision coefficients

NKgas N◦ of reaction coefficients for gas processes

NKSurf N◦ of reaction coefficients for surface processes

NKRImp N◦ of radiation imprisonment processes

NReverse N◦ of reverse reactions

KTable(:) Table of translation indexes for reaction coefficients

8 As PLASMAKIN sorts and reorders the reactions, write operations must use this array to keep the correspondance between reactions resultsin an output file and the initial reaction order in the data input file.

N.R. Pinhão / Computer Physics Communications 135 (2001) 105–131 117

CHARACTER(10) :: unitsEND TYPE

Other derived data types are only used internally and are not described here.

3.2.2. Input data formatData reading is exclusively done byNAMELIST input and threeNAMELIST groups are used:

PLASMAKIN_DATA for global data and usually used only once;

CHEM_SPECIES for chemical species in the discharge;

CHEM_REACTION for reaction process.

The last two can be used to describe individual or a group of species or reactions. Each group have the followingvariables (the values indicated are the default values used in PLASMAKIN):

&PLASMAKIN_DATACte_p = .TRUE. ! Constant pressure dischargePressure = 0, ’Nm-2’ ! The gas pressureGas_n = 0, ’m-3’ ! The gas total densityGas_T = 0, ’K’ ! The gas temperatureelectron_T = 0, ’eV’ / ! The electron temperature

Although all variables are optional, the density or the pressure must be indicated. If the density is not indicated,its value is computed from the pressure and gas temperature values, assuming an ideal gas. The last four variableshave the data typePHYS_PROPERTY and the units supported in each case are listed in Table 2.

&CHEM_SPECIESname = ’’ ! Species or base name of a groupconstant = .FALSE. ! Is density changed in reactions?charge = 0 ! Electrical charge in |q_e| unitsmass = 0 ! Mass in a.m.u.g = 1 ! Degeneracy for excited levels

Table 2Supported units ofPHYS_PROPERTY type variables used inNAMELIST input

PLASMAKIN_DATA

Variable Supported units

Pressure “Nm−2”, “bar”, “mbar”, “torr”, “atm”

Gas_n “m−3”, “cm−3”

Gas_T “K”, “C”

electron_T “eV”, “K”, “C”

CHEM_SPECIES

energy “eV”, “kJ/mol”, “kJmol−1”, “kcal/mol”, “kcalmol−1”

omega “cm−1”, “s−1”

vib_T “K”, “C”

mpolar ‘ ’, “ea_o”, “ea_o2”

initial_conc ‘ ’, “%”

118 N.R. Pinhão / Computer Physics Communications 135 (2001) 105–131

energy = 0, ’eV’ ! Level energy (eV) or the std molar enthalpyheatC = 0 ! Heat capacity (Cp or Cv)K_T = 0 ! Thermal conductivityv = 0,0 ! Range of vibr. quantum numbersomega = 0, ’cm-1’ ! Vibrational frequencyvib_T = 0, ’K’ ! Vibrational temperatureanharmonicity = 0 ! Anharmonicity parameterrotational_cte = 0 ! Rotational constantmpolar = 0, ’’ ! Dipolar or quadrupolar momentuminitial_conc = 0, ’’ ! Species initial concentrationnum_scheme = 0 ! Index of numerical schemecascade = .FALSE. ! Is it a cascade level?data_file = ’’, 0 / ! Auxiliar data file

Some of these properties are common to all particles while others are meaningful only to some species. The onlymandatory property is thename, all others being optional. Table 2 lists the units supported for each variable withdata typePHYS_PROPERTY.

The following rules must be followed:(i) All species must have a name. This name is used to identify the species in chemical reactions. Although

nothing hinders the use of custom designations, it’s advisable to follow the chemical nomenclature, withthe limitation that under- or superscript numbers or symbols must be written inline.

(ii) Names are case sensitive.(iii) In the present version charged excited species are not supported, only excited neutrals. Cascade levels are

classified separately.(iv) The name of electrons must be the letter “e”.(v) The name of photons species must contain the word “photon”.(vi) A group of vibrational levels is identified by the last characters of the name and by the limiting values of

v. The name must finish with the string “(v)” (ex: “N2(v)”). The limits ofv must follow the orderv1< v2.For a single vibrational levels only the first value ofv must be indicated.

&CHEM_REACTIONlocus = ’gas’ ! Where the reaction takes placereactants = 4*’’ ! Name of reactant speciesproducts = 4*’’ ! Name of product speciescomment = ’’ ! Identifies a group of reactionsopposing = .FALSE. ! Compute reverse reaction?ee_loss = 0 ! Energy lost by electrons (eV)value = 12*0 ! Rate coefficient parametersunits = ’’ ! Rate coefficient unitsdata_file =’’,0 / ! Where to read reaction coef. values?

Thelocusvariable allows the selection of reactions according to location. Usually it will be used to differentiatebetween ‘gas’ or ‘surface’ reactions but it can also be used to differentiate reactions taking part in different surfaces.

The following rules must be followed:(i) With the single exception of a third body, allreactants and products must be identified in a

CHEM_SPECIES NAMELIST. Otherwise an error message is produced.(ii) Reactions involving vibrational levels can be included in a group. The presence of the sequences “,v” or “,w”

in reactants or products is used to detect a group of vibrational levels. In this case three differentsintax can be used to identify the group members:(a) If the reactions correspond to a fixed variation of the vibrational quantum number, the relation between

the vibrational number ofreactants andproducts can be explicitly indicated as in the followingexample:

N.R. Pinhão / Computer Physics Communications 135 (2001) 105–131 119

reactants = ’N2(X,v+1)’,’N2(X,w)’,products = ’N2(X,v)’,’N2(X,w+1)’

(b) If the range of vibrational levels is defined by a relation involving only one vibrational number, thisrelation can be included in the reactant or product name as in the example:

reactants = ’Ne’,’N2(X,v<=10)’, products = ’Ne’,2*’N’

(c) If the levels are selected by a relation involving two vibrational numbers, the relation must be writtenin the variablecomment. Ex:

reactants = ’N2(X,v)’,’M’,products = ’N2(X,w)’,’M’, comment = ’|v-w|>=1’

The arithmetic operators+,−, in case (a), and the logical operators<,�,=,�,> in the other two,can be used to write the relations.

(iii) The energy lost by the electrons is in most cases equal to−Hf and is automatically evaluated. However ifhot atoms or ions are formed, the value ofee_loss must be explicitly indicated.

(iv) In termolecular reactions the third body must be identified by the letter ‘M’

3.3. Procedures

The extensive use of function overloading allows a considerable reduction of the number of public procedures.Several procedures have similar interfaces and these interfaces mimic the interfaces of several Fortran intrinsicprocedures. Many dummy arguments are optional.

All procedures names follow the convention:pk<action><subject>, wherepk is used to ease theidentification of PLASMAKIN procedures,<action> is a verb or an inquiry clause and<subject> is thedata acted on by the procedure.

Several procedures have a lastSTAT or IOSTAT argument. In all cases it is defined as:

IOSTAT or STAT [INTEGER, OPTIONAL, INTENT(OUT)] This argument is a status specifier. Thereturned value is zero if the routine execution is successful. Otherwise is the corresponding error number.

The public procedures can be classified in three categories:

Data reading, allocation and destruction: pkReadData; pkReadBaseData; pkReadSpecies; pkReadChemReac-tions; pkCleanData.

Data inquiring: pkGetValue; pkGetParticle; pkGetReacCoef; pkGetReverseCoef; pkGetSources; pkGetPhotonE-mission; pkGetPowerLosses; pkIsPhotoElec.

Data modification: pkSetValue; pkSetReacCoef; pkSetPhoton.

Several other procedures are internally used to sort, classify, handle reverse reactions, cascade levels or photons,error checking, etc.

3.3.1. Procedures interfaceThe following is a compact list of procedure interfaces. A detailed description can be found in the library manual.

Subroutines:

pkReadData( UNIT, IOSTAT )pkReadBaseData( UNIT, IOSTAT )

120 N.R. Pinhão / Computer Physics Communications 135 (2001) 105–131

pkReadSpecies( UNIT, IOSTAT )pkReadChemReactions( UNIT, IOSTAT )

Arguments:

UNIT [INTEGER, INTENT(OUT)] number of an external unit where data will be read. This unit should havebeen previously open.

Comment : The procedurepkReadData is the prefered routine to read the data input file when the input data iswritten in a single file. However if it is convenient to read each group ofNAMELIST separatelly, the other threeroutines can be used.

Subroutine:

pkCleanData( STAT )

Comment : This procedure destroys all information on species and reactions, deallocating all the internal arrays.

Subroutines:

pkGetValue( GasTemp, eTemp, GasN, STAT )pkSetValue( GasTemp, eTemp, GasN, N1byN0, Number, STAT )

Arguments:

GasTemp [REAL(8), OPTIONAL, INTENT(IN/OUT)] new or present value for gas temperature.

eTemp [REAL(8), OPTIONAL, INTENT(IN/OUT)] new or present value for electron temperature.

GasN [REAL(8), OPTIONAL, INTENT(IN/OUT)] new or present value for gas mixture density.

N1byN0 [REAL(8), OPTIONAL, INTENT(IN)] array with the ratio of vibrational populations forv = 1andv = 0. The presence of this ratios modifies the vibrational temperature of levels identified byNumber.

Number [INTEGER, OPTIONAL, INTENT(IN)] index of starting vibrational level for vibrational temper-ature modification.

Comment : The first three arguments have the attributeINTENT(OUT) in procedurepkGetValue andINTENT(IN) in procedurepkSetValue.

Subroutines:

pkGetParticle( Property, Value, SpeciesN, STAT )pkGetReacCoef( Property, Value, SpeciesN, STAT )pkGetReverseCoef( Property, Value, SpeciesN, STAT )pkSetReacCoef( Property, Value, SpeciesN, STAT )

Arguments:

Property [CHARACTER(*), INTENT(IN)] name of property.

N.R. Pinhão / Computer Physics Communications 135 (2001) 105–131 121

Value [INTENT(IN/OUT)] value of property. In procedurepkSetReacCoef the attribute is INTENT(IN),otherwise is INTENT(OUT). The data type is the same of the inquired property. Can be a scalar or an array.

SpeciesN [INTEGER, INTENT(IN)] Index of specie or reaction coefficient inquired.

Comment : These procedures have generic names and acceptValue arguments of more than one data type.

Subroutine:

pkGetSources( LDensity, SrcC, SrcP, Ratios, Locus, STAT )

Arguments:

LDensity [REAL(8), INTENT(IN)] array with density of non-constant atomic or molecular species at agiven point.

SrcC [REAL(8), INTENT(OUT)] array with termG of Eqs. (2) and (3).

SrcP [REAL(8), OPTIONAL, INTENT(OUT)] array with termL of Eqs. (2) and (3).

Ratios [REAL(8), OPTIONAL, INTENT(OUT)] array of sizeNKReac×NnTV with the percentagecontribution of each reaction for the formation or loss of each species.

Locus [CHARACTER(10), OPTIONAL, INTENT(IN)] location of the reaction.

Subroutine:

pkGetPhotonEmission( LDensity, PhRate, STAT )

Arguments:

LDensity [REAL(8), INTENT(IN)] is the same argument as above.

PhRate [REAL(8), OPTIONAL, INTENT(OUT)] array of size2×NPhot with the energy and volumnemission rate of each photon.

Subroutine:

pkGetPowerLosses( LDensity, eP, eR, HeatP, HeatR, RadP, RadR, STAT )

Arguments:

LDensity [REAL(8), INTENT(IN)] is the same argument as above.

eP [REAL(8), OPTIONAL, INTENT(OUT)] electron energy exchange rate.

eR [REAL(8), OPTIONAL, INTENT(OUT)] array of sizeNKea with the percentage contribution of eachelectron collision reaction foreP.

HeatP [REAL(8), OPTIONAL, INTENT(OUT)] heat production rate in collisions.

HeatR [REAL(8), OPTIONAL, INTENT(OUT)] array of sizeNKgas with the percentage contribution ofeach reaction forHeatP.

122 N.R. Pinhão / Computer Physics Communications 135 (2001) 105–131

RadP [REAL(8), OPTIONAL, INTENT(OUT)] energy loss rate by photon emission.

RadR [REAL(8), OPTIONAL, INTENT(OUT)] array of sizeNPhot with the percentage contribution ofeach photon forRadP.

Function:

pkIsPhotoElec( Number, Locus, NParent )

Arguments:

Number [INTEGER, INTENT(IN)] index of photon inquired.

Locus [CHARACTER(10), OPTIONAL, INTENT(IN)] name of surface inquired.

NParent [INTEGER, INTENT(OUT)] index of species responsible for the emission of photonNumber.

Comment : This procedure inquires if a given photon is responsable by photoelectric emission in surfaceLocus.

Subroutine:

pkSetPhoton( PhDensity, NPhSrc, STAT )

Arguments:

PhDensity [REAL(DOUBLE), INTENT(IN)] Array of dimensionNPhSrc with photon density.

NPhSrc [INTEGER] N◦ of photons producing photoelectric emission.

Comment : This procedure is used to set the photon density at a surface to evaluation of photoelectron emission.

4. Test program

As a practical test we have prepared a program to study the positive column in electro-positive gases. Theprogram exemplifyies the usage of PLASMAKIN using a significant number of funcitonalities but without thepurpose to cover all.

We consider an infinite cylinder and assume that the rate coefficients and transport parameters are independentof radius. In this conditions, the lowest mode solution of the continuity equations for the discharge species isproportional to the first Bessel function and for a steady-state discharge the following conditions must be satisfied[19]:

NDsi

(NΛ)2= Gi/1i −Li , i = 1, . . . ,Ns − 1, (21)

whereN is the gas density,Dsi a diffusion coefficient,Λ the diffusion length,1i = ni/N the radially averagedrelative concentration of speciesi, andNs the number of species. For an infinite cylinder of radiusR,Λ=R/2.405.For ionsDsi is the ambipolar diffusion coefficient and for electronsDse is an effective diffusion coefficient rangingfrom the space charge free diffusion coefficient to the ambipolar diffusion coefficient. Chantry [20] has derived asimple empirical formula forDse, covering the full range 0<Λ/λDe <∞ and 0<Λ/λ+ <∞,whereλDe andλ+are, respectively, the Debye length and the mean-free path for ions. A tutorial review of the physics of the positivecolumn can be found in [19].

N.R. Pinhão / Computer Physics Communications 135 (2001) 105–131 123

The diffusion and electron rate coefficients are functions ofE/N . Imposing a discharge current, the above systemcan be solved together with the charge conservation condition,

∑ionsj 1j =1e, to evaluate the “maintenance” field,

the relative concentrations,1i , and the contribution of each reaction to these populations.This model was applied to the positive column region of a discharge in neon. The kinetic model used is similar to

the argon model discussed in [21]. The species and reactions included in the model are indicated in the sample datafile and in Table 3. This model includes electron excitation of the four 3s levels; excitation to two representative 3plevels and a upper level representing higher levels; cascade transitions from the 3p to the 3s levels; electron-impact-induced excitation transfer between the 3s levels; ionisation from the 3s levels; Penning ionisation between the 3slevels; radiative transitions for the resonance levels with radiation imprisonment; diffusion to the wall; formationof the neon molecular ion in Penning and 3-body collisions. Radiation imprisonment is accounted by an averagedescape factor [23] adapted to a Voight line profile in the high opacity approximation. An extended description ofthe model can be found in [26].

This model, although allowing an approximate description of the discharge, is used here mainly as an exampleof the flexibility introduced by PLASMAKIN.

Fig. 2 shows the predicted discharge characteristics for three discharge currents. As discussed in [21], for lowvalues of the productNR, the discharge characteristics follows a similarity law of the typeE/N = f (NR, I/R).

PLASMAKIN allows to obtain a large amount of information on the discharge. The following figures are aselection of the different results available:

• Fig. 3 show the predicted relative concentration forp = 0.5 mbar andR = 1 cm.• Fig. 4 represents the relative contribution of selected reactions for the electron source term,G, for three

discharge currents. The labels refers to the index of the reaction in the data file. The last figures clearly showsthe importance of reactions on levels3P2 and3P0 (ionisation by electron collision — reactions 10 and 12;Penning ionisation — reactions 46, 48, 56 and 58) to the total ionisation rate.

• Fig. 5 shows the photon emission spectra forp = 1 mbar andI = 10 mA. As we have considered the 3pand 4s levels grouped, the lines bellow 3 eV don’t corresponds to a real neon spectra and are shown only forilustration.

• Fig. 6 show the relative contribution of selected reactions, including elastic collisions, to the electron energylosses for three current values.

A sample data file is reproduced in the Appendix.

Table 3Collisional and radiative processes included in the kinetic model for a neon positive column and references used

Process Value Ref.

Ne+ e→Ne(3sj )+ e Boltzmann

Ne+ e→Ne(3pj )+ e Boltzmann

Ne+ e→Ne(4sj )+ e Boltzmann

Ne+ e→Ne+ + 2e Boltzmann

Ne(3sj )+ e→Ne+ + 2e Boltzmann

Ne(3sj )+ e→Ne(3sk)+ e α0jkTβ0jk

e exp(α1jk/Te) [22]

Ne(3sj )�Ne+ γj ηj , j = 2,4 [23]

Ne(3pj )→Ne(3sk)+ γj cascade trans.

Ne(3sj )+Ne(3sk)→Ne+Ne+ + e 3.2× 10−10 [24]

Ne(3sj )+Ne(3sk)→Ne+2 + e 3.2× 10−10 [24]

Ne+ + 2M →Ne+2 +M 2.5× 10−31cm6s−1 [25]

124 N.R. Pinhão / Computer Physics Communications 135 (2001) 105–131

Fig. 2. Estimated values for the characteristics ofE/N vsNR for the neon positive column, for three values ofI/R.

Fig. 3. Relative populations as a function of the discharge current atp = 0.5 mbar.

5. Summary and future development

PLASMAKIN transfers the handling of physical and chemical data necessary to study the reaction kinetics ingas discharges to external files or internal routines, greatly simplifying the development of programs and allowinga high level of abstraction. Although this library has been developed for low pressure plasma physics problems, itis expected that several other fields should also benefit from it.

N.R. Pinhão / Computer Physics Communications 135 (2001) 105–131 125

Fig. 4. Percentage contribution of selected reactions to the total ionisation rate, atp = 0.1 mbar for three values of discharge current. Thenumerical labels refer to the index of the reaction in the data file.

Fig. 5. Photon emission spectra atp = 0.1 mbar,R = 1 cm andI = 10 mA. The lines shown bellow 3 eV are transition from the 3p and 4srepresentative levels considered in the model and in a real spectra are split into several lines.

Although in present version PLASMAKIN already supports a large number of gas properties and reactionprocesses, several improvements are been considered. Namely, support for ionic excited states; the possibilityto account, as 3rd body in three body collisions, of species with different efficiencies in promoting the reaction;the support for surface reactions with different adsorbed atoms and evaluation of several physical properties suchas the surface coverage and sticking coefficient, and several other thermodynamic properties. Finally, although the

126 N.R. Pinhão / Computer Physics Communications 135 (2001) 105–131

Fig. 6. Relative contribution of selected reactions to the electron energy loss term, atp = 1 mbar andR = 1 cm for three values of dischargecurrent. The numbers refer to the index of the reaction in the data file.

use of some Fortran 95 language elements and the design of routines already takes account of the possible use inparallel computers, a throughout optimization for parallel algorithms is desired.

Acknowledgements

This work was partially supported by the Portuguese-Hungary cooperation contract ICCTI 423/OMFB.Thanks are due to Dr. F. Carvalho, Z. Donkó and M. Pinheiro for useful discussions, bibliography and comments.

References

[1] S.A. Roberts, PLASKEM, Comput. Phys. Commun. 18 (1979) 363.[2] C.J. Aro, CHEMSODE, Comput. Phys. Commun. 97 (1996) 304.[3] G.D. Carver, P.D. Brown, O. Wild, ASAD, Comput. Phys. Commun. 105 (1997) 197.[4] R.J. Kee, F.M. Rupley, E. Meeks, J.A. Miller, CHEMKIN-III, Sandia National Laboratories, 1996.[5] C.E. Treanor, J.W. Rich, R.G. Rehm, J. Chem. Phys. 48 (1968) 1768.[6] B.F. Gordiets, S.S. Mamedov, L.A. Shelepin, JETP 40 (1972) 640–646.[7] A.F. Molisch, B.P. Oehry, Radiation Trapping in Atomic Vapours, Oxford Univ. Press, 1988.[8] N.R. Pinhão, J. Phys. D: Appl. Phys. 27 (1994) 1184–1192.[9] M.A. Lieberman, A.J. Lichtenberg, Principles of Plasma Discharges and Materials Processing, John Wiley & Sons, New York, 1994.

[10] R.N. Schwartz, Z.I. Slawsky, K.F. Herzfeld, J. Chem. Phys. 20 (1952) 1591–1599.[11] R.N. Schwartz, K.F. Hersfeld, J. Chem. Phys. 22 (1954) 767–773.[12] J. Keck, G. Carrier, J. Chem. Phys. 43 (1965) 2284–2298.[13] K. Bray, J. Phys. B: At. Mol. Phys. 1 (1968) 705–717.[14] V. Guerra, J. Loureiro, J. Phys. D: Appl. Phys. 28 (1995) 1903–1918.[15] F. Lindemann, Trans. Faraday Soc. 17 (1922) 598.[16] P.H. Gilbert, K. Luther, J. Troe, Ber. Buns. Phys. Chem. 87 (1983) 169.[17] C. D. Norton, Object oriented programming paradigms in scientific computing, Ph.D. thesis, Renssleaer Polytechnic Institute, Troy, NY,

August 1996.

N.R. Pinhão / Computer Physics Communications 135 (2001) 105–131 127

[18] C.D. Norton, B.K. Szymanski, V.K. Decyk, Comm. ACM 38 (10) (1995) 88–100.[19] A.V. Phelps, J. Res. Natl. Inst. Stand. Technol. 95 (1990) 407.[20] P.J. Chantry, J. Appl. Phys. 62 (1987) 1141.[21] C.M. Ferreira, J. Loureiro, A. Ricard, J. Appl. Phys. 57 (1985) 82.[22] V.A. Ivanov, J. Phys. B 31 (1998) 1765.[23] N.N. Bezuglov et al., Phys. Rev. E 55 (1997) 3333.[24] A. Aguilar, B. Brunetto, M. González, F. Vecchiocattivi, Chem. Phys. 145 (1990) 211.[25] B.K. Chatterjee, R. Johnsen, J. Chem. Phys. 93 (1990) 5681.[26] N. Pinhão, XV ESCAMPIG — Contributed Papers, 2000.

Appendix. Sample input file

! **************************************************************! TestData.txt - Datafile for simulation of the positive column! region in a neon discharge.! **************************************************************

&PositiveColumnGeometry = ’cylindrical’,Length = 1.0, ! Radius in cmCurrent = 0.1 ! Current in mAEbyN_Guess = 1.60e-15, ! Guess value for E/N in V*cm2nGuess = 1.5e-7,1.5e-9,3.0e-8,1.0e-9,6e-10,0e-11 ! Guess for densityErrRel = 1.e-7 / ! Maximum relative error for iterations

&PLASMAKIN_DATAPressure = 0.15,’mbar’, Gas_n = ,’cm-3’, Gas_T = 300,’K’ /

&CHEM_SPECIESname = ’Ne’, constant = T, mass = 20.18, initial_conc = 100, ’%’ /

&CHEM_SPECIESname = ’Ne(3P2)’, energy = 16.61, g = 5data_file = ’NeTransp.txt’ /

&CHEM_SPECIES name = ’Ne(3P1)’, energy = 16.67, g = 3, /&CHEM_SPECIES name = ’Ne(3P0)’, energy = 16.71, g = 1, /&CHEM_SPECIES name = ’Ne(1P1)’, energy = 16.85, g = 3, /&CHEM_SPECIES name = ’Ne(3p)’, cascade = T /&CHEM_SPECIES name = ’Ne(3pM)’, cascade = T /&CHEM_SPECIES name = ’Ne(4s)’, cascade = T /&CHEM_SPECIES name = ’Ne+’, mass = 20.18, charge = 1 /&CHEM_SPECIES name = ’Ne2+’, mass = 40.36, charge = 1 /&CHEM_SPECIES name = ’photon 1’ /&CHEM_SPECIES name = ’photon 2’ /&CHEM_SPECIES name = ’photon 3’ /&CHEM_SPECIES name = ’photon 4’ /&CHEM_SPECIES name = ’photon 5’ /&CHEM_SPECIES name = ’photon 6’ /&CHEM_SPECIES name = ’photon 7’ /&CHEM_SPECIES name = ’photon 8’ /&CHEM_SPECIES name = ’photon 9’ /&CHEM_SPECIES name = ’photon 10’ /&CHEM_SPECIES name = ’photon 11’ /

128 N.R. Pinhão / Computer Physics Communications 135 (2001) 105–131

&CHEM_SPECIES name = ’photon 12’ /&CHEM_SPECIES name = ’photon 13’ /&CHEM_SPECIES name = ’e’, charge = -1, data_file = ’Ne_data.txt’,1 /

! 1. Electron collision reactions *****************************! 1.1. Elastic collisions&CHEM_REACTION ! #1reactants = ’e’,’Ne’, products = ’e’,’Ne’, units = ’cm3s-1’,data_file = ’Ne_data.txt’,3 /

! 1.2. Excitation of the 3s levels&CHEM_REACTION ! #2reactants = ’e’,’Ne’, products = ’e’,’Ne(3P2)’, units = ’cm3s-1’data_file = ’Ne_data.txt’,4 /

&CHEM_REACTION ! #3reactants = ’e’,’Ne’, products = ’e’,’Ne(3P1)’, units = ’cm3s-1’data_file = ’Ne_data.txt’,5 /

&CHEM_REACTION ! #4reactants = ’e’,’Ne’, products = ’e’,’Ne(3P0)’, units = ’cm3s-1’data_file = ’Ne_data.txt’,6 /

&CHEM_REACTION ! #5reactants = ’e’,’Ne’, products = ’e’,’Ne(1P1)’, units = ’cm3s-1’data_file = ’Ne_data.txt’,7 /

! 1.3. Excitation of the 3p and 4s+upper levels&CHEM_REACTION ! #6reactants = ’e’,’Ne’, products = ’e’,’Ne(3p)’, units = ’cm3s-1’data_file = ’Ne_data.txt’,8 /

&CHEM_REACTION ! #7reactants = ’e’,’Ne’, products = ’e’,’Ne(3pM)’, units = ’cm3s-1’data_file = ’Ne_data.txt’,9 /

&CHEM_REACTION ! #8reactants = ’e’,’Ne’, products = ’e’,’Ne(4s)’, units = ’cm3s-1’data_file = ’Ne_data.txt’,10 /

! 1.4. Ionisation&CHEM_REACTION ! #9reactants = ’e’,’Ne’, products = 2*’e’,’Ne+’, units = ’cm3s-1’data_file = ’Ne_data.txt’,11 /

&CHEM_REACTION ! #10reactants = ’e’,’Ne(3P2)’, products = 2*’e’,’Ne+’, units = ’cm3s-1’data_file = ’Ne_data.txt’,12 /

&CHEM_REACTION ! #11reactants = ’e’,’Ne(3P1)’, products = 2*’e’,’Ne+’, units = ’cm3s-1’data_file = ’Ne_data.txt’,13 /

&CHEM_REACTION ! #12reactants = ’e’,’Ne(3P0)’, products = 2*’e’,’Ne+’, units = ’cm3s-1’data_file = ’Ne_data.txt’,14 /

&CHEM_REACTION ! #13reactants = ’e’,’Ne(1P1)’, products = 2*’e’,’Ne+’, units = ’cm3s-1’data_file = ’Ne_data.txt’,15 /

N.R. Pinhão / Computer Physics Communications 135 (2001) 105–131 129

! 1.5. s_j-s_i transitions! Values from V.A. Ivanov J. Phys. B 31 (1998) 1765-177&CHEM_REACTION ! #14, #15reactants = ’e’,’Ne(3P2)’, products = ’e’,’Ne(3P1)’, opposing = T,value = 1.603e-6,-0.3,-6.0e2,1 units = ’cm3s-1’ /

&CHEM_REACTION ! #16, #17reactants = ’e’,’Ne(3P1)’, products = ’e’,’Ne(3P0)’, opposing = T,value = 3.1e-8,,-5.176e3,1 units = ’cm3s-1’ /

&CHEM_REACTION ! #18, #19reactants = ’e’,’Ne(3P2)’, products = ’e’,’Ne(3P0)’, opposing = T,value = 8.2e-9,,-1.118e3,1 units = ’cm3s-1’ /

&CHEM_REACTION ! #20, #21reactants = ’e’,’Ne(3P2)’, products = ’e’,’Ne(1P1)’, opposing = T,value = 5.e-9,,2.658e3,1 units = ’cm3s-1’ /

&CHEM_REACTION ! #22, #23reactants = ’e’,’Ne(3P1)’, products = ’e’,’Ne(1P1)’, opposing = T,value = 5.e-9,,2.054e3,1 units = ’cm3s-1’ /

&CHEM_REACTION ! #24, #25reactants = ’e’,’Ne(3P0)’, products = ’e’,’Ne(1P1)’, opposing = T,value = 2.3e-7,,1.543e3, units = ’cm3s-1’ /

! 1.6. electron-ion recombination&CHEM_REACTION ! #26reactants = ’e’,’Ne2+’ products = ’Ne(3P2)’,’Ne’,

value = 6.693e-7,-0.67, units = ’cm3s-1’ /&CHEM_REACTION ! #27reactants = ’e’,’Ne2+’ products = ’Ne(3P1)’,’Ne’,

value = 6.693e-7,-0.67, units = ’cm3s-1’ /&CHEM_REACTION ! #28reactants = ’e’,’Ne2+’ products = ’Ne(3P0)’,’Ne’,

value = 6.693e-7,-0.67, units = ’cm3s-1’ /&CHEM_REACTION ! #29reactants = ’e’,’Ne2+’ products = ’Ne(1P1)’,’Ne’,

value = 6.693e-7,-0.67, units = ’cm3s-1’ /

! 2. Radiative transition *************************************

! 2.1. 3s radiative levels&CHEM_REACTION ! #30reactants = ’Ne(3P1)’, products = ’Ne’,’photon 1’, value = 0.486e8 /

&CHEM_REACTION ! #31reactants = ’Ne(1P1)’, products = ’Ne’,’photon 2’, value = 6.11e8 /

! 2.2 4s radiative level&CHEM_REACTION ! #32reactants = ’Ne(4s)’, products = ’Ne’,’photon 11’, value = 1.21e8 /

! 2.3. Radiation imprisonment&CHEM_REACTION ! #33reactants = ’Ne’,’photon 1’, products = ’Ne(3P1)’, value = 4.539e-3 /

&CHEM_REACTION ! #34reactants = ’Ne’,’photon 2’, products = ’Ne(1P1)’, value = 1.746e-3 /

130 N.R. Pinhão / Computer Physics Communications 135 (2001) 105–131

&CHEM_REACTION ! #35reactants = ’Ne’,’photon 11’, products = ’Ne(4s)’, value = 1.0e-3 /

! 2.4. Cascade reaction&CHEM_REACTION ! #36reactants = ’Ne(3p)’, products = ’Ne(3P2)’,’photon 3’, value = 9.24e7 /

&CHEM_REACTION ! #37reactants = ’Ne(3pM)’, products = ’Ne(3P2)’,’photon 4’, value = 6.128e7 /

&CHEM_REACTION ! #38reactants = ’Ne(3p)’, products = ’Ne(3P1)’,’photon 5’, value = 6.722e7 /

&CHEM_REACTION ! #39reactants = ’Ne(3pM)’, products = ’Ne(3P1)’,’photon 6’, value = 9.397e7 /

&CHEM_REACTION ! #40reactants = ’Ne(3p)’, products = ’Ne(3P0)’,’photon 7’, value = 1.691e7 /

&CHEM_REACTION ! #41reactants = ’Ne(3pM)’, products = ’Ne(3P0)’,’photon 8’, value = 2.49e7 /

&CHEM_REACTION ! #42reactants = ’Ne(3p)’, products = ’Ne(1P1)’,’photon 9’, value = 6.689e7 /

&CHEM_REACTION ! #43reactants = ’Ne(3pM)’, products = ’Ne(1P1)’,’photon 10’, value = 9.208e7 /

&CHEM_REACTION ! #44reactants = ’Ne(4s)’, products = ’Ne(3p)’,’photon 12’, value = 1.034e7 /

&CHEM_REACTION ! #45reactants = ’Ne(4s)’, products = ’Ne(3pM)’,’photon 13’, value = 1.434e7 /

! 3. Heavy species kinetic ************************************

! 3.1 Pooling reaction&CHEM_REACTION ! #46reactants = ’Ne(3P2)’,’Ne(3P2)’, products = ’Ne’,’Ne+’,’e’value = 3.2e-10, units = ’cm3s-1’ /

&CHEM_REACTION ! #47reactants = ’Ne(3P2)’,’Ne(3P1)’, products = ’Ne’,’Ne+’,’e’value = 3.2e-10, units = ’cm3s-1’ /

&CHEM_REACTION ! #48reactants = ’Ne(3P2)’,’Ne(3P0)’, products = ’Ne’,’Ne+’,’e’value = 3.2e-10, units = ’cm3s-1’ /

&CHEM_REACTION ! #49reactants = ’Ne(3P2)’,’Ne(1P1)’, products = ’Ne’,’Ne+’,’e’value = 3.2e-10, units = ’cm3s-1’ /

&CHEM_REACTION ! #50reactants = ’Ne(3P1)’,’Ne(3P1)’, products = ’Ne’,’Ne+’,’e’value = 3.2e-10, units = ’cm3s-1’ /

&CHEM_REACTION ! #51reactants = ’Ne(3P1)’,’Ne(3P0)’, products = ’Ne’,’Ne+’,’e’value = 3.2e-10, units = ’cm3s-1’ /

&CHEM_REACTION ! #52reactants = ’Ne(3P1)’,’Ne(1P1)’, products = ’Ne’,’Ne+’,’e’value = 3.2e-10, units = ’cm3s-1’ /

&CHEM_REACTION ! #53reactants = ’Ne(3P0)’,’Ne(3P0)’, products = ’Ne’,’Ne+’,’e’value = 3.2e-10, units = ’cm3s-1’ /

N.R. Pinhão / Computer Physics Communications 135 (2001) 105–131 131

&CHEM_REACTION ! #54reactants = ’Ne(3P0)’,’Ne(1P1)’, products = ’Ne’,’Ne+’,’e’value = 3.2e-10, units = ’cm3s-1’ /

&CHEM_REACTION ! #55reactants = ’Ne(1P1)’,’Ne(1P1)’, products = ’Ne’,’Ne+’,’e’value = 3.2e-10, units = ’cm3s-1’ /

&CHEM_REACTION ! #56reactants = ’Ne(3P2)’,’Ne(3P2)’, products = ’Ne2+’,’e’value = 3.2e-10, units = ’cm3s-1’ /

&CHEM_REACTION ! #57reactants = ’Ne(3P2)’,’Ne(3P1)’, products = ’Ne2+’,’e’value = 3.2e-10, units = ’cm3s-1’ /

&CHEM_REACTION ! #58reactants = ’Ne(3P2)’,’Ne(3P0)’, products = ’Ne2+’,’e’value = 3.2e-10, units = ’cm3s-1’ /

&CHEM_REACTION ! #59reactants = ’Ne(3P2)’,’Ne(1P1)’, products = ’Ne2+’,’e’value = 3.2e-10, units = ’cm3s-1’ /

&CHEM_REACTION ! #60reactants = ’Ne(3P1)’,’Ne(3P1)’, products = ’Ne2+’,’e’value = 3.2e-10, units = ’cm3s-1’ /

&CHEM_REACTION ! #61reactants = ’Ne(3P1)’,’Ne(3P0)’, products = ’Ne2+’,’e’value = 3.2e-10, units = ’cm3s-1’ /

&CHEM_REACTION ! #62reactants = ’Ne(3P1)’,’Ne(1P1)’, products = ’Ne2+’,’e’value = 3.2e-10, units = ’cm3s-1’ /

&CHEM_REACTION ! #63reactants = ’Ne(3P0)’,’Ne(3P0)’, products = ’Ne2+’,’e’value = 3.2e-10 units = ’cm3s-1’ /

&CHEM_REACTION ! #64reactants = ’Ne(3P0)’,’Ne(1P1)’, products = ’Ne2+’,’e’value = 3.2e-10, units = ’cm3s-1’ /

&CHEM_REACTION ! #65reactants = ’Ne(1P1)’,’Ne(1P1)’, products = ’Ne2+’,’e’value = 3.2e-10, units = ’cm3s-1’ /

! 3.2. Molecular ion formation&CHEM_REACTION ! #61reactants = ’Ne+’,2*’M’, products = ’Ne2+’,’M’value = 2.5e-31, units = ’cm6s-1’ /