HSC welcomes all external visitors to this site, especially students and members of the academic community. Please use the comments box at the bottom of each page to record any comments or suggestions for improvement.
Objective of program
This code is an implementation of the surface annealing simulation based on Shankar's dual stage optimization algorithm.
The code runs on a beowulf cluster: the master reads the input membrane and passes small slices of membrane to the slaves. The slaves run surface annealing algo on the slice received from the master and send back the optimised membrane.
Master also provides a graphical interface for original membrane and subsequent alterations in membrane as the program progresses.
Source code
sfile.c : Contains the main function, reads the input membrane, initalizes associated libraries and calls surface annealing algo.
sfile:dual.c : Contains the master function for surface annealing and beowulf work distribution logic
sfile:siman.c : Contains implementation of a basic simulated annealing algorithm, this code is borrowed from open source
sfile:mfit.c : Contains front-end for the gsl least mean square error curve fitter
sfile:wulf.c : Contains functions specific to sending slices from master to slaves
sfile:membrane.c : Contains membrane and membrane slice creation, alteration and destroy functions
sfile:parg.c : Contains functions for handling arguments to program
sfile:plot.c : Contains functions for plotting of the membrane (uses plplot library (version 5.7.1))
Corresponding headar files:
sfile:membrane.h
sfile:parg.h
sfile:wulf.h
sfile:plot.h
sfile:plane.h
Output samples
The following images are output samples of the program.
The membrane is altered with an aim of minimizing the energy of membrane. The membrane is optimised over multiple iterations of increasing slice size.
Case 1: starting with slice size 8 and increasing upto the complete membrane
 |
| Figure 1.1: Initial membrane. Energy: 168.1 |
 |
| Figure 1.2: First iteration in progress. |
 |
| Figure 1.3: First iteration completed. Energy: 119.6 |
 |
| Figure 1.4: Second iteration completed. Energy: 103.5 |
 |
| Figure 1.5: Final output. Energy: 103.5 |
Case 2: starting with slice size 16 and increasing upto the complete membrane
 |
| Figure 2.1: Initial membrane. Energy: 168.1 |
 |
| Figure 2.2: First iteration completed. Energy: 117.3 |
 |
| Figure 2.3: Final output. Energy: 117.3 |
Case 3: starting with slice size 48(full membrane)
 |
| Figure 3.1: Initial membrane. Energy: 168.1 |
 |
| Figure 3.2: Final output. Energy: 132.6 |
Comments