Elsevier Science Home
Computer Physics Communications Program Library
Full text online from Science Direct
Programs in Physics & Physical Chemistry
CPC Home

[Licence| Download | New Version Template] advl_v2_0.tar.gz(1280 Kbytes)
Manuscript Title: Multithreaded transactions in scientific computing: New versions of a computer program for kinematical calculations of RHEED intensity oscillations
Authors: Marcin Brzuszek, Andrzej Daniluk
Program title: GROWTHgr, GROWTH06
Catalogue identifier: ADVL_v2_0
Distribution format: tar.gz
Journal reference: Comput. Phys. Commun. 175(2006)678
Programming language: Object Pascal.
Computer: Pentium-based PC.
Operating system: Windows 9x, XP, NT.
RAM: more than 1 Mb
Word size: 64 bits
Keywords: Reflection high-energy electron diffraction (RHEED), Molecular Beam Epitaxy (MBE), Non-linear differential equations, transactions, concurrent programming, UML.
PACS: 02.60.Cb, 61.14.Hg.
Classification: 7.2, 6.2, 8, 14.

Does the new version supersede the previous version?: No

Nature of problem:
The programs compute the RHEED intensities during the growth of thin epitaxial structures prepared using the molecular beam epitaxy (MBE). The computations are based on the use of kinematical diffraction theory [1].

Solution method:
Epitaxial growth of thin films is modelled by a set of non-linear differential equations [1]. The Runge-Kutta method with adaptive stepsize control was used for solving initial value problem for non-linear differential equations [2].

Reasons for new version:
In line with the users' suggestions we improved the functionality of the program. Moreover, we added new capabilities which make the input data design process and output even easier and more efficient than the previous one.

Summary of revisions:
  1. We designed fully object-oriented extensions of the previous version of the program [3]. In the present form the programs enable concurrent compute and display of program data at run-time through an easy-to-use graphical interface.
  2. The code has been modified and optimised to compile under the Delphi IDE (integrated development environment).
  3. A graphical user interface (GUI) for the programs has been created. The applications are MDI (multiple document interface) projects from Delphi s object repository. Each of the MDI application spawns child windows that reside within the client window; the main form contains child objects.
  4. The programs offer the possibility of carrying out computations on the basis of the model of multithreaded transactions. Transactions have four elements, known as the ACID properties: atomicity, consistency, isolation and durability [4, 5]. Atomicity means that either the entire transaction completes, or it is as if the transaction never executed. Consistency means that the transaction maintains the data integrity constrains of the program. Isolation means that even if transactions execute concurrently, their results appear as if they were executed in some serial order. Durability means that all changes made by a committed transaction are permanent, i. e. the effects of a transaction survive subsequent system failures. The presented programs support all of properties mentioned above. Figure 1 shows internal structure of the programs. Figure 2 shows the static structure of classes and their possible relationships (i.e. inheritance, association and aggregation) in the code. Figure 3 shows an activity diagram for the programs.
  5. The programs have been constructed according to the systems development life cycle (SDLC) methodology [6].
  6. The GROWTH06 program has been modelled using the Borland Together Architect visualmodelling platform. Figures 4 and 5 show the static structure of the TTransaction and TGrowthTransaction classes.
(The figures mentioned above are contained in the distribution file.)

Unusual features:
The programs are distributed in the form of source projects GROWTHGr.dpr and GROWTH06.bdsproj with associated files, and should be compiled using Borland Delphi compilers versions 5 or later and Delphi Borland Developer Studio 2006, respectively.

Running time:
The typical running time is machine and user-parameters dependent.

[1] P. I. Cohen, G. S. Petrich, P. R. Pukite, G. J. Whaley and A. S. Arrott, Surf. Sci. 216 (1989) 222.
[2] W. H. Press, B. P. Flannery, S. A. Teukolsky, W. T. Vetterling, Numerical Recipes in Pascal: The Art Of Scientific Computing; 1st edition, Cambridge University Press, 1989. See also: Numerical Recipes in C++; 2nd edition, Cambridge University Press, 1992.
[3] A. Daniluk, Comput. Phys. Comm. 170 (2005) 265.
[4] S. Jagannathan, J. Vitek, A. Welc, A. Hosking, Science of Computer Programming 57 (2005) 164.
[5] M. Brzuszek, MSc Thesis, MCS Univ., Lublin (2005) - in Polish.
[6] J. A. Hoffer, J. F. George, J. S. Valacich, Modern Systems Analysis and Design, Addison- Wesley (1999).