Introduction

PUPIL,Program for User Package Interface and Linking, is a software environment,- the program,- to allow developers to quickly and efficiently link together multiple pieces of software,- the user packages,- that have been and are actively being developed by researchers. The program is general and can be used to link user packages from any scientific or engineering domain. However, we developed it with multi-scale simulation in the field of material science in mind, and the interfaces included in this first release show that bias.


The design philosophy of PUPIL was to provide an environment for the software developer of user packages for simulation in material science and engineering in which it is possible to pass control and data from one user package to another in a straightforward manner. A requirement of the design is that the changes any developer must make to any of the user packages must be small. To make such changes, it is obviously required to understand the user package, but we wanted to avoid the need to have a complete and exhaustive understanding such as would be required when one wants to create a combined user package from to independently developed user packages.


The architecture of PUPIL is that of a supervisor program that coordinates the execution and communication between the user packages, which are called calculation units (CU). The supervisor is implemented as a distributed program with one manager and several workers, one for each calculation unit. The manager and the workers communicate via the CORBA (common object request broker) protocol. The worker code is part of the calculation unit executable and the communication with the calculation unit and its worker is by subroutine calls. The manager and the worker code are written in Java. The worker’s Java code calls C-code in the calculation unit through the JNI (Java Native Interface). The calculation code, often written in Fortran or C, calls C-code in the PUPIL library to.


Capabilities
Current version: 1.4 (August 4, 2011)
  • Graphic User Interface to build the main simulation inputfile.
  • Simulation Manager to lead the multi-scale simulation between different Calculation Units.
  • Interface with Amber v10 and v11
  • Interface with DL_CLASS v1.3 (DL_POLY)
  • Interface with Gaussian03 and 09
  • Interface with deMon2k
  • Interface with NWChem
  • Interface with Siesta v3.0 (Start/Stop and CycleQM behaviors)
  • Interface with mndo97 (Start/Stop QM role behaviors)
  • stubMD. Stub program for interface sample and testing playing a Molecular Dynamics Calculation Unit role.
  • stubQM. Stub program for interface sample and testing, playing a Cycle Quantum Mechanics Calculation Unit role.
  • stubDI. Stub program for interface sample and testing,playing an external Domain Identifier Calculation Unit role.

ChangeLog

New release: version 1.4 (August 4, 2011)
  • Added support for Mac OS (Darwin).
  • New Pupil installation using Autoconf and Automake.
  • Created the mailing list "pupil-users".
  • Bug Fixed: 3083240. LocalExecutor not reporting stack traces on Exception.
  • Bug Fixed: 3083237. Orphaned semaphore sets left by stubQM or stubDI.
  • Bug Fixed: 3037853. Bad assignment of inptraj file in Amber interface.
  • Bug Fixed: 3026598. Case sensitive element matching.
  • Bug Fixed: 3022646. Semiempirical methods does not run.
  • Bug Fixed: 3015029. New inpcrd file reading problem.
  • Bug Fixed: 3014870. "Error reading rules" when visiting Gaussian setup twice.
  • Bug Fixed: 3000025. Inpcrd file reading problem.
  • Bug Fixed: 2987860. Large systems cause a crash in sander.
  • Bug Fixed: 2979608. Problem reading terminal glycine residue.
  • Bug Fixed: 2979605. Menus invisible on Mac.
  • Bug Fixed: 2970814. Error adding object to memory structure.

New release: version 1.3 (December 12, 2009)
  • Added deMon2k interface for PUPIL.
  • Added NWChem interface for PUPIL.
  • Added a parallel MPI shell template to run those programs in parallel execution ($PUPIL_PATH/test/scripts).
  • Added PCFORCE program to calculate Forces over Point charges due to electron density from QZ (using Cube file) working for NWChem and deMon2k only.
  • Added some additional tests for NWChem and deMon2k.
  • New implementation of "quantum zone-point charge" force correction for the PUPIL-Gaussian03 interface. Electrostatic field at the point charges obtainedfrom Gaussian03.
  • Added JVM memory management from PUPIL client interface.

New documentation release (May 10, 2009)
  • New revised manual v2.3
  • New PUPIL Tutorial: "Using PUPIL to postprocess a MD trajectory obtained by Amber with a QM method from Gaussian03"

New bugfix release: Version 1.2-1 (March 15, 2009)
  • Fixed a bug when killing PUPIL-workers
  • Fixed a bug in generating forces over MM atoms from interaction with electronic density from cube file
  • Implemented a "Terminating status" in libPUPIL.so
  • Revised manual
  • General language revision
© 2006-2009 PUPIL Authors, All Rights Reserved | Website created by Montse Casajuana