Man Linux: Main Page and Category List

NAME

       Chemeq - Chemical Equation Analyzer

SYNOPSIS

       chemeq [options]

DESCRIPTION

       Chemeq  is  a  chemical  equation  analyzer.  It  is a fast lexical and
       syntaxic  analyser  which  helps  to  find  out  chemical  informations
       embedded  in  source  chemical equations. Data can be output in various
       sophisticated formats,  depending  on  options.  ’chemeq’  defaults  to
       ’chemeq -mlcwCn’.

OPTIONS

       Options  are  active  only  if  chemeq  parses  an equation of chemical
       reaction. If chemeq parses the formula of a simple chemical, no  option
       is  taken  in  account, the output is just a straightforward TeX string
       representing the simple chemical.

       -h     Displays Help.

       -v     Displays the Version number

       -M     Outputs al list of space separated molecular weights.

       -m     Outputs a Minimal output. It allows  chemeq  to  be  idempotent,
              i.e. the command ’chemeq | chemeq’ is equivalent to ’chemeq’.

       -l     Outputs a LaTeX string representing the chemical equation.

       -c     Outputs  a message giving informations about the Conservation of
              elements and charges in  the  equation.  ’OK’  means  that  both
              elements and electric charges are balanced.

       -w     Outputs  the LaTeX string representing the Gulder-Waage equation
              related to the input chemical equation, or the Nernst  equation,
              if the input equation is a redox semi-equation.

       -C     Outputs  a  detailed  Count of the molecules and atoms contained
              in each member of the chemical equation.  For  example  for  the
              equation  "H2_g + 1/2 O2_g --> H2O" it outputs: "H2_g|H:1*2, 1/2
              O2_g|O:1/2*2; H2O|H:1*2 O:1*1"

       -e     Outputs a detailed count of the Electrical charges.

       -s     Outputs a list of the chemical Species.

       -n     Outputs a Normalized string accounting for the  input  equation.
              Two  chemical  equations  having  the same normalized string are
              chemically equivalent,  even  if  the  molecules  are  scrambled
              around and the coefficient are not equal but proportionnal.

ENVIRONMENT VARIABLES

       chemeq_input
              if set, this variables’s value overrides the standard  input. If
              this variable is not set, the variable w_chemeq_input  is  taken
              in account (useful for the WIMS server).

       chemeq_option
              if  set,  this  variable’s  value  overrides the options.If this
              variable is not set, the variable w_chemeq_option  is  taken  in
              account (useful for the WIMS server).

EXAMPLES

       echo "1/2 Cu^2+ + OH- ->  1/2Cu(OH)2s" | chemeq
              will display informations about the reaction of hydroxyde and Cu
              II ions.

       echo "MnO4^- + 8H3O^+ + 5e- --> Mn^2+ + 12 H2O" | chemeq
              will display informations about the  reaction  of  reduction  of
              permanganate ions in an acid environment.

       echo "MnO4^- + 8H3O^+ + 5e- --> Mn^2+ + 12 H2O" | chemeq -w
              will  display the LaTeX format for the Nernst law related to the
              reduction of permanganate ions in an acid environment.

       echo "MnO4^- + 8H3O^+ + 5e- --> Mn^2+ + 8 H2O" | chemeq -c
              will highlight the lack of conservation  of  elements  H  and  O
              (water molecules are not well balanced).

NOTE: syntax of ions

       allthough in some cases, shorter expressions are sucessfully parsed, it
       is safer to consider that an "up arrow" (^)  must  be  put  before  the
       charge symbols of an ion.  Examples : H3O^+, Fe(CN)6^4-, OH^-

Composing chemical equations.

       Two  operators are defined, # as an additive oprator and ~ (tilde) as a
       substractive operator: they allow to compose several chemical equations

       echo "MnO4^- + 8H3O^+ + 5e- --> Mn^2+ + 8 H2O ~ 5Fe^3+ + 5e- -> 5Fe^2+"
       | chemeq
              will  display  the  pure redox equation from the first equation,
              minus the second one. Electrons are simplified. So  it  will  be
              equivalent to:

       echo "MnO4^- + 8H3O^+ + 5Fe^2+--> Mn^2+ + 8 H2O + 5Fe^3+" | chemeq
              which is their combination.

Mutiplying a chemical equation by one coefficient.

       The  operator * permits to multiply a whole equation by one coefficient
       which may be a fraction. Here is an example:

       echo "5 * Fe^3+ + e- -> Fe^2+" | chemeq
              will be equivalent to

       echo "5Fe^3+ + 5e- -> 5Fe^2+" | chemeq

Combining chemical equations, with coefficients.

       The two previous techniques can be used at the same time, which enables
       you to make more comlicated combinations, like this one:

       echo  "Fe^3+  +  e^-  ->  Fe^2+  (0.77 V) # Fe^2+ + 6CN^- -> Fe(CN)6^4-
       (Kfa=1e24) ~ Fe^3+ + 6CN^- -> Fe(CN)6^3- (Kfb=1e31)" | chemeq
              which  will  work  as  expected,  and  yeld a good value for the
              standard potential of the redox couple  of  hexacyanoferrate  II
              and III ions.

AUTHORS

       Georges Khaznadar,
         <georgesk@ofset.org>

KNOWN BUGS

       When  not  specified,  chemical entities coming from the standard input
       are believed to be in aqueous solutions. Water is considered by default
       as the main solvent. Only one liquid (aqueous) phase is currently taken
       in account.  All solid chemical entities are  considered  as  parts  of
       separated  phases.   Suffixes _s, _g and _aq can be used to enforce the
       type of some chemical entities.

       There may be problemes when you write  a  standard  potential  with  no
       decimal  dot.  For example, the entry Mn^2+ + 2e^- -> Mn_s (-1 V) would
       trigger an error. Then write Mn^2+ + 2e^- -> Mn_s (-1.0 V) or the  more
       accurate  value  Mn^2+  +  2e^-  -> Mn_s (-1.18 V) and there will be no
       error.

                                  4 june 2000                        chemeq(1)