I'm forwarding this from Jiahao Chen, who contributed the QEq and QTPIE charge models to Open Babel. I'll reply in a second.
Begin forwarded message: > From: Jiahao Chen <[email protected]> > Date: July 2, 2010 6:30:51 PM EDT > To: Geoffrey Hutchison <[email protected]> > Subject: Properties derived from charge models - code structure? > > Hi Geoff, > > I was thinking of adding some code to OpenBabel to compute electrostatic > properties and I would appreciate your input on how such code should be > structured. > > The properties I am thinking of are: > > 1. Dipole moments and higher order multipole moments. It is straightforward > to compute these once a molecule is assigned a charge distribution using any > method. > > 2. Dipole polarizabilities, which can be computed with QEq and QTPIE. In > principle this is also computable with Gasteiger charges, but would require > writing code that I do not have right now. > > 3. Condensed Fukui functions, which are the probabilities that charge sites > will build up charge when the total charge on the system is changed. These > can be computed using an analogous equation to the charge response equations > of QEq and QTPIE, but with a different vector on the right hand side. > > 4. Molecular electronegativities and molecular hardnesses. The molecular > electronegativity is a byproduct of solving the QEq or QTPIE equations, and > the molecular hardness is a byproduct of solving the corresponding equations > for the condensed Fukui functions. > > 5. Further reactivity indices such as those proposed by Geerlings, de Proft > and Langenaeker (Chem Rev 103, 2003, 1793) which can be computed without too > much additional effort given charge and charge response data. > > It is clear that class members implementing the appropriate calculations for > all but (1) should be placed within charges/qeq.cpp and ~/qtpie.cpp. However > I am not sure as to where to place code to call and output these quantities. > > Based on my understanding of the OpenBabel code structure, it seems that some > kind of corresponding OBDescriptors would be appropriate for doing the > bookkeeping of figuring out if the charge model requested is > capable of producing the respective quantities and making the appropriate > OBChargeModel::ComputeProperty() calls and assigning them to appropriate > OBVectorData or OBMatrixData containers under OBMol. Alternatively, the code > in qeq.cpp or qtpie.cpp could assign such data directly. This seems > appropriate for molecular electronegativities and hardnesses, which are > byproducts of solving the equations and are currently being thrown away. For > other properties like the polarizabilities, extra calculations are needed, > and for some, the time taken to compute them is comparable to the time taken > to solve for the charges in the first place. > > Also, one minor thing: it would seem useful to expose these properties (if > requested using "-add" or already read in from an input file) to the report > format, which currently does not output any perceived or read-from-input > properties data. This seems like an omission that runs counter to the spirit > of making as complete of a report as possible. > > Thanks, > > Jiahao Chen > MIT Chemistry > http://theochem.mit.edu > --- Prof. Geoffrey Hutchison Assistant Professor, Department of Chemistry University of Pittsburgh http://hutchison.chem.pitt.edu/ Office: (412) 648-0492 ------------------------------------------------------------------------------ This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ OpenBabel-Devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openbabel-devel
