Each OEAtomBase keeps track of two types of charges. The first, formal charge, is an integer property that is essential for the correct valence representation of a molecule. Together with atomic valences, bond order and the connectivity, this field is defines the identity of a molecule. The second type of charge, partial charge, is a floating point property used in computational chemistry and molecular modeling. This value is used to represent the electronic distribution/wave-function of a molecule by approximating the molecule's electrostatic field with a set of point charges located at each atom.
The formal charges on an atom may be stored and retrieved using the
OEAtomBase::SetFormalCharge
and OEAtomBase::GetFormalCharge
methods respectively. Similarly, the partial charges are stored and
retrieved with the OEAtomBase::SetPartialCharge
and
OEAtomBase::GetPartialCharge
methods.
Neither the formal charge nor the partial charge is a directly observable
property of an atom. Instead the same molecule may be represented by
different valence representations each placing the formal charges in
different locations, i.e.
[cH+]1[cH-][cH+][cH-][cH+][cH-]1
Benzene, and
different partial charging algorithms may assign significantly different
partial charges to the same atom.