Subject: Re: CCL:Object-oriented means for computational chemistry programming

From: Konrad Hinsen <[email-masked]>
Date: Thu, 10 Jul 1997 11:10:08 +0200

> FORTRAN still remains the main programming language of computational
> chemistry. But 
> I wonder if anybody knew about the programs where methods computational
> chemistry and, in particular quantum mechanical (ab initio or
> semiempirical), MM or QM/MM force field methods are developed by means of
> object-oriented languages (C++ preferably). I know Hyperchem is announced

Have a look at the Molecular Modelling Toolkit at
   http://starship.skyport.net/crew/hinsen/mmtk.html

It's an object-oriented library for molecular modelling, implemented
mostly in Python (which is also the "scripting" language for users)
with time-critical parts (force field evaluation, minimization, MD) in
C. No ab-initio or QM/MM yet, but that would be a nice addition...
MMTK is free, so there's no reason not to try it.

The choice of an interpreted high-level language (Python) may come as
a surprise, but the majority of algorithms in molecular modelling are
not at all CPU intensive, although people happen to talk much about
the number crunching parts. Using Python speeds up development
tremendously. Further advantages:

- Python is a complete general-purpose programming language, not a
  simplified scripting language. Instead of writing scripts for a
  modelling program, you write Python programs using the MMTK library.
  There is no restriction to what you can do in your programs.

- Free combination of modelling libraries with more general-purpose
  Python libraries. Want non-standard visualization? Use the VRML module.
  Want a quick histogram of some quantity? Use the statistics and plotting
  modules. Want to have a long simulation produce a continuous progress
  report on a Web page? Use the HTML module. Want to post your results
  automatically to Usenet? Use the NNTP module. (Note: *don't* do that
  unless you like flame wars!)

- An object-oriented description at the user level is very appropriate
  for molecular modelling. A C++ program would not offer that automatically;
  it would be object-oriented internally, but creating a user-level
  access to that description would be a major effort.

- Portable binary data formats. No more problems with getting big files
  from the supercomputer to your desktop workstation.

> Is there any benchmarks where their characteristics are presented as
> compared to FORTRAN programs? Is there any sufficient difference in the
> speed of computation?

That is as much a question about compilers than about languages and
programs. Recent issues of Computers in Physics have had several
reports on C++ vs. Fortran for numerical efficiency.
-- 
-------------------------------------------------------------------------------
Konrad Hinsen                          | E-Mail: [email-masked]
Laboratoire de Dynamique Moleculaire   | Tel.: +33-4.76.88.99.28
Institut de Biologie Structurale       | Fax:  +33-4.76.88.54.94
41, av. des Martyrs                    | Deutsch/Esperanto/English/
38027 Grenoble Cedex 1, France         | Nederlands/Francais
-------------------------------------------------------------------------------