Cactus 4.0
Maintainers’ Guide DRAFT VERSION

PIC

Revision
Date

Preface

This document should describe the Cactus flesh. In particular it should describe

In addition it should contain ideas for future enhancements.

Overview of documentation

This guide covers the following topics

Part A: Philosphy and Style.

The philosophy behind the flesh and the coding style used.

Part B: The Make System.

The nitty-gritty of the make system.

Part C: The CST.

The nitty-gritty of the CST.

Part D: General.

General miscellaneous things used all over the flesh.

Part E: Main.

Everything you never wanted to know about the files in the Main subdirectory of the flesh.

Part F: Comm.

Everything you never wanted to know about the files in the Comm subdirectory of the flesh.

Part G: IO.

Everything you never wanted to know about the files in the IO subdirectory of the flesh.

Part H: Util.

Everything you never wanted to know about the various utility files.

Part I: Schedule.

Everything you never wanted to know about the Schedule system.

Part J: Appendices.

I’m sure we’ll need something here.

Other topics to be discussed in separate documents include:

Computational Thorn Guide

This will contain details about the arrangements and thorns making up the standard Cactus Computation Tool Kit

Relativity Thorn Guide

This will contain details about the arrangements and thorns making up the Cactus Relativity Tool Kit, one of the major motivators, and still the driving force, for the Cactus Code.

Users’ Guide

The stuff users need to know. This in particular documents the functions the flesh needs to make available to the thorns.

Typographical Conventions

Typewriter

Is currently used for everything you type, for program names, and code extracts.

< ... >

Indicates a compulsory argument.

[ ... ]

Indicates an optional argument.

How to Contact Us

Please let us know of any errors or omissions in this guide, as well as suggestions for future editions. These can be reported via our bug tracking system at http://www.cactuscode.org, or via email to cactusmaint@cactuscode.org. Alternatively, write to us at

The Cactus Team
Center for Computation & Technology
216 Johnston Hall
Louisiana State University
Baton Rouge, LA 70803
USA

Acknowledgements

Hearty thanks to all those who have helped with documentation for the Cactus Code.

A  1
A1 Philosophy
A2 Coding Style
 A2.1 Indentation
 A2.2 Brace positioning
 A2.3 GRDOC
 A2.4 Header Files
 A2.5 Source Files
 A2.6 Naming Conventions
 A2.7 Functions
B  2
B1 Use of CVS
B2 Use of GNATS
B3 Release procedure
C  3
C1 Introduction
 C1.1 Note on philosophy of the make system
C2 Make files
 C2.1 Makefile
 C2.2 lib/make/make.configuration
 C2.3 lib/make/make.thornlib
 C2.4 lib/make/make.subdir
 C2.5 lib/make/make.pre and lib/make/make.post
C3 Autoconf stuff
 C3.1 configure.in
 C3.2 config.h.in
 C3.3 make.config.defn.in
 C3.4 make.config.rules.in
 C3.5 make.config.deps.in
 C3.6 aclocal.m4
 C3.7 CCTK_functions.sh
 C3.8 known-architectures
 C3.9 extras
 C3.10 config.sub and config.guess
C4 Perl scripts
 C4.1 setup_configuration.pl
 C4.2 configure.pl
 C4.3 new_thorn.pl
D  4
D1 Introduction
D2 The Databases
D3 The Generated Files
D4 The Parsing Routines
D5 The Output Routines
D6 Miscellaneous Routines
E  5
E1 Introduction
F  6
F1 Introduction
G  7
G1 Introduction
H  8
H1 Introduction
I  9
I1 Introduction
I2 Design and algorithms
I3 Implementation
I4 Summary of Interfaces
J  10
J1 XEmacs customisation