Objects Mixture Species Molecule Manifold <Prev Next>

Custom Population Functions

As an alternative to the built in Boltzmann population distributions, or specifying a population for each state individually (see Non-Boltzmann Populations), a function can be given in terms of various standard state properties instead. This is done by creating a "Custom Population Function" object under the appropriate Manifold object. The standard mathematical operators are available, and possible functions might include:

exp(-E/(kB*T)) The standard Boltzmann equation. PGOPHER uses an equation close to this, providing Tvib and Tspin are set to their default values (-1).(T is automatically created as a parameter here.)
exp(-(E-EB)/(kB*T)) Population equation actually used by PGOPHER if Tvib and Tspin are set to their default values (-1).
exp(-(E-Orign)/(kB*T))
*
exp(-(Origin-EB)/(kB*Simulation.Tvib))
Population equation actually used by PGOPHER if Tvib is not the default, but Tspin is.
exp(-b*(J-Jcentre)^2)
A Gaussian distribution in J, centered on Jcentre. (Jcentre is automatically created as a parameter here .)
Result*(E<Emax)
Standard distribution, but discarding all states above Emax. The comparison operators evaluate to 1 if the comparison is true, and 0 for false allowing simple if...then...else logic. (Emax is automatically created as a parameter.)
sqrt(max(Emax-E,0))
A statistical distribution with a cut off energy of Emax. (Emax is automatically created as a parameter.)
Result*(1+2*(mod(J,3)=0))
Standard distribution, but scaling levels with J divisible by 3 by 3.
exp(-(E-EB)/(kB*Temperature))
+A2*Temperature/T2*exp(-(E-EB)/(kB*T2))

Bi-exponential rotational population distribution, with an additional temperature, T2, created as a parameter. A2 is the relative amount with temperature T2. The scaling factor Temperature/T2 takes account of the fact that rotational partition functions are approximately proportional to T, making ratio of components with the two temperatures approximately 1:A2.

Notes:

Built In Variables

Result
The population PGOPHER would use if Active is set to false
E
The state energy
kB
The Boltzmann constant in the current energy units/K. (Note k will be taken as a quantum number)
J
J for the state
Symmetry
The symmetry number of the state
Index
The eigenvalue number of the state
MJ
MJ for the state - only set if external fields are present
Origin
The origin of the vibronic state. This is normally the value of the Origin parameter for the state, but for linear molecules a correction is applied so that the value is approximately the  energy of the lowest rotational level. (A similar offset is applied in the vibrational structure mode.)
EB
The AssumedOrigin for the molecule (if not set to the default) or else the lowest vibronic state origin (defined as above), considering only states for which Initial = True.
Width
The calculated width for the state

Additional quantum numbers are also available, depending on the molecule type. They are based on the dominant basis state, so may not be exact for strongly mixed states.

For asymmetric tops the standard quantum numbers Ka and Kc are available.

For linear molecules:
Omega
The Omega quantum number
Fn The spin component, 1 for F1, 2 for F2, etc.
Note that for versions before 8.0.171 the values were divided by 2.

For symmetric tops:
K
The absolute value of K
Kl The sign of Kl but separably degenerate point groups have additional in this variable.

For vibrating molecules:
v1, v2, ...
Vibrational quantum numbers
l1, l2, ...
Vibrational angular momentum quantum number, for degenerate modes only.
Lambda
Electronic orbital angular momentum, Λ.
Omega
Electronic angular momentum, Ω.

In addition any parameter can be referred to by giving the name in dotted notation. For example the current global temperature can be referred to using Simulation.Temperature and Tvib can be referred to using Simulation.Tvib.

Settings

Active Set true to use the function provided to calculate the population
nDebug If non zero, write the values of all the variables and the value of the function on each evaluation to the log window. See debugging for options on the output. To see any output the expression must not be blank - simply set to "Value" to see the defaults in action.