next up previous
Next: CÆSAR - THROHPUT Integration Up: 2003_STAIF Previous: Results

THE CÆSAR ENVIRONMENT

CÆSAR is a computational physics development environment; that is, it provides an environment where the physics of real systems can be modeled, by discretizing a set of partial differential equations on a mesh and solving the resultant algebraic system. It provides a consistent means of incorporating new methods of attacking computational physics problems. It is extensible - new equation sets, new discretizations, new meshes, new linear solvers, new communication libraries, etc., may be incorporated easily.

The emphasis in CÆSAR is on equation sets, discretizations, meshes, nonlinear solvers, and preconditioners, which are all incorporated into the basic CÆSAR structure. In contrast, linear solvers, communications libraries, mesh generators/partitioners, and visualization tools are generally included as external packages developed elsewhere.

CÆSAR is written in Fortran-90 (preprocessed by Gnu m4) in an object-based fashion, and probably comes as close to being object-oriented as is possible in Fortran-90. It has both parallel and serial versions, designed in from the start of the project. CÆSAR has a completely levelized design (##lakos96 ##lakos96); there are no dependency loops between classes or modules. It uses its own form of Design by Contract TM(##meyer97 ##meyer97) to verify the behavior of all procedures. CÆSAR uses extensive unit testing to certify all classes. It uses the ideas of literate programming (##knuth92 ##knuth92) to generate documentation (in HTML, PostScript and PDF) from comments included in the code, via the Document Package. The CÆSAR computational physics environment incorporates multiple mesh types, dimensionalities, and geometries. It supports multiple physics packages by allowing for different sets of partial differential equations.



Subsections
next up previous
Next: CÆSAR - THROHPUT Integration Up: 2003_STAIF Previous: Results
Michael L. Hall