Home

Chapter 1. Introduction

Documentation

Version 1.2.0 Beta 1

Chapter 1. Introduction

1. Overview

NanoHive-1 is a modular simulator used for modeling the physical world at a nanometer scale. The intended purpose of the simulator is to act as a tool for the study and development of nanotech entities.

Two important issues that NanoHive-1 was designed to handle are

  1. The number and complexity of factors that play a part in simulating nanospace
  2. The computational intensity required to calculate those factors for each atom per time and space quantum

1.1. Complexity

It's important to account for as many of the factors that effect each atom in nanospace as possible. To help encourage and facilitate the contribution of expertise to NanoHive-1, the architecture supports a plugin scheme for adding interactive phenomena to the simulation. The development of these plugins is hosted at the NanoHive-1 SourceForge.

1.2. Computational Intensity

The simulator is targeted for two types of computational situations: a desk-top version for very simple molecular systems, and fully distributable and parallel versions for larger, millions and billions of atoms simulations. The distributable or parallel versions could run on stand-alone networks, or low-cost Beowulf clusters, or be made available as a computational grid node (or set of nodes) on a network like the Globus Project grid.

1.3. Software Architecture

The primary goals of this software architecture are to:

  • Provide a plugin framework for key simulation functions to make NanoHive-1 cleanly extensible
  • Distribute NanoHive-1's computational load across the given resources as efficiently as possible while maintaining data and state integrity

The following figure shows the relations between the main components of the simulator and highlights the plugin components.

Figure 1.1. Software Architecture Overview

Software Architecture Overview


  • The NanoHive-1 Core and Physical Interaction Manager coordinate all components of the simulator.
  • The Simulation Control plugins are used to configure, control, and monitor the simulation. For example, the ConsoleCommand Simulation Control plugin provides a command-line interface to NanoHive-1, and the SocketsControl plugin provides a way to control NanoHive-1 via a sockets connection.
  • The Entity Management plugin is responsible for storing all simulation data including atoms, bonds, molecules, devices, and systems. The RAMEntityManager Entity Management plugin stores all of this data in memory, and the PostgreSQL_EntityManager stores it in a postgreSQL database, for example.
  • The Data Import/Export plugins are used to import and export nano systems and nano devices from and to files. For example, the OpenBabelImportExport Data Import/Export plugin can import and export .pdb files.
  • The Distributed Physical Interaction Calculators are the distributable layer of the simulator. They create simulation work units to distribute to slave NanoHive-1 instances.
  • The Distributed PIC Control plugins provide the transport and control mechanisms for the distribution of simulation work units. For example, the SocketsPIC_Control Distributed PIC Control plugin uses NFS and FTP to transfer work units, and sockets to control the slave NanoHive-1 instances.
  • The Local Physical Interaction Calculators perform the actual simulation calculations depending on which Physical Interaction plugins they have loaded.
  • The Physical Interaction plugins perform the actual calculations that model the world at a nanometer scale. For example, the MPQC_SClib Physical Interaction plugin performs general quantum mechanics calculations, and the AIREBO plugin performs reactive molecular dynamics for hydrocarbon systems.
  • The Entity Traversal plugins provide ways for the Physical Interaction Manager to traverse through the simulation space and distribute the simulation across the Physical Interaction plugins. For example, the RC_Traverser Entity Traversal plugin provides to each Physical Interaction plugin the entire system for simulation, whereas the BasicCellTraverser plugin divides the system up into cells for distributed calculation.
  • The Simulation Results plugins are invoked to provide the interim and final results of the simulation. For example, the POVRayVideo Simulation Results plugin periodically writes POV-Ray scene description files that can be rendered into 3D images of the system, and later compiled into a movie of the simulation.

A detailed explanation of each plugin is given in the Plugin Reference section.


Last Modified: 5/17/2006