The Euclid project is developing the capability to perform physical simulations by computing directly on databases. All steps of the process, including mesh generation, solving, and visualization, work by directly querying and updating databases. With this database approach, the size of simulations is limited by disk capacity rather than by memory capacity, allowing scientists and engineers to run much larger simulations on their desktop systems than is currently possible. Our current approach is based on performing finite difference and finite element simulations using octrees stored in database structures called etrees. Each octree is stored on disk as a sequence of fixed sized octant records sorted by a locational code order that is equivalent to a preorder traversal of the tree and a space-filling Z-order traversal through the domain. The sorted records are indexed by a conventional file-resident B-tree index and queried using fixed-length locational code keys. We have developed a system for manipulating etrees called the etree library. The library is written in C and provides a couple dozen functions for creating, modifying, and searching octrees, including efficient mechanisms for appending octants and iterating over octants in Z-order. Complete sources and documentation are available free of charge to researchers. The Euclid Project is supported in part by the NSF-sponsored Community Modeling Environment Project at the Southern California Earthquake Center, and in part by the National Science Foundation. Etree library software available for downloading
Papers and presentations
ApplicationsHere are some of the applications of etrees we are currently working on:
PeopleFor info contact Dave O'Hallaron |