News updates:

A new version of mobihf with integrated mobimol is now available. Check my blog (a refined link) for some screen shots.

 - Ganesh, 28th Mar 2007.

 

A new version of mobihf (bug fix release) is available now. The C/python module was compiled using gnupoc, as i have currently no access to a windows machine (and may not have for a few more months!). No new features are added except that now it reports time and whether a python or C module is used for integral evaluation.

- Ganesh, 16th Feb 2007.

mobihf has been ported to 3rd edition phones by cyke64 and is available at:

http://cyke64.googlepages.com/

- Ganesh, 24th Nov 2006.


The source code of both mobimol and mobihf have been merged with the PyQuante CVS. All further updates will be available from the PyQuante CVS at: http://pyquante.cvs.sourceforge.net/pyquante/PyQuante/MobiCode/

Thanks a lot to Rick for the help in merging the code with PyQuante CVS!

I will further update this page to reflect the new changes. So look back!

- Ganesh, 25th August 2006.


mobimol and mobihf:

This page contains my work on writing a few interesting Python scripts on the S60 series mobile phones. This has largely been made possible by the excellent work by Nokia to port Python interpreter on S60 platform. Check http://opensource.nokia.com on how to obtain the interpreter on you phone. Alternately check a page maintained by cyke64 here that contains a exhaustive list of phones that support the S60 platform as well as appropriate link for downloading the interpreter.

For the moment I describe two of the scripts with which I have managed to squeeze in a simple visualizer and an SCF procedure for electronic structure calculation at HF level of theory.

  • mobimol
    A basic and simple visualizer meant for reading and displaying molecular geometry provided in XYZ format. The input for mobimol should be provided in a file ending with extension .xyz and should be stored in an accessible location on phone (i.e. either on C: - the internal phone memory or E: - the external flash card).
    A sample input is as follows:

    2 <-------------- Number of atoms
    h2 <-------------- Title/ Molecule name
    H 0.0 0.0 0.0 <--- atom symbol in Cartesian
    H 1.0 0.0 0.0 coordinates

    Other capabilities:
    - Display model: Line / Line and Circle
    - Transforms: Rotation, Zoom
    - Switch between full screen and normal mode
    - Query features: Distance, Angle and Dihedral
    - Label: Symbol, ID (atom number)

    Version Information:
    - Version: 0.6
    - Last updated: April 02, 2006
    - Where to obtain source: mobimol.py
    - License: GPL

  • mobihf
    Now it is possible to do an electronic structure calculation of small molecules on your mobile phone!
    The script is mainly derived from PyQuante and quantumj. It expects input in a .inp file stored in your phone. The format of this file is described with the following example:

    2 <---------------- Number of atoms
    h2 hf sto-3g <---- Title, level, basis
    H 0.0 0.0 0.0
    <---- atom symbol in Cartesian
    H 1.0 0.0 0.0 coordinates

    Capabilities:
    - Supports HF single point energy calculation at minimal basis set (STO-3G)
    - Other basis can be easily added by modifying the script
    - Currently supports only: H, C, N and O
    - And well most importantly it runs on your mobile!
    - C++ extension for evaluation of 2E integral (derived from cints PyQuante package, and suitably modified for symbian). Check my post here for some bugs in Symbian math library.

    Version Information:
    - Version: 0.4
    - Last updated: Mar 28, 2007
    - Where to obtain source:
    Original Source: mobihf.py
    New Source: mobihf_ext.tar.gz (includes C++ extension for 2E integrals)
    - License: GPL

    What to expect in next release?
    - calculate electron density over a grid, and visualize it using mobimol.
    - parallel two electron integral code over a bluetooth connection to speedup calculation.

    Some benchmarks:
    - Phone Model: Nokia 6600
    - Symbian: OS v7.0s
    - Internal RAM: 10MB (but I guess you can only allocate 3MB of heap)
    - Processor: 104 MHz

    (Old benchmarks with original pure Python code)
    System Contractions Time
    h2 2 20 sec
    wat 7 35 min *
    * Most of the time (33 mins) is spent in two electron integral evaluation!

    (New benchmarks with C++ module for 2E integral evaluation)
    System Contractions Time
    h2 2 2 sec
    wat 7 2 min *

    * The new timings are slightly better 1.9 min :)

    You can observe the drastic reduction in time when evaluating 2E integrals using C++ DLL rather than purely python code.