wiki:DeveloperGuide

Version 39 (modified by Jonathan, 12 years ago) ( diff )

AstroBEAR 2.0 Developer's Guide

Chapter 1. The structure of AstroBEAR

The AstroBEAR source code is organized into several subdirectories that each contain modules designed to handle a particular aspect of the code. Here is a very brief description of each directory.

  • tree - Contains modules that define the AMR tree structures as well as various routines for manipulating the AMR tree.
  • data - Contains modules that define the data structures associated with each grid or patch as well as operations for synchronizing the data, and for performing operations on the data.
  • particle - Contains modules that define the data structures associated with Lagrangian particles, and routines for performing operations on particles.
  • amr - Contains control routines for advancing the AMR dataset in time.
  • distribution - Contains routines for distributing workloads over multiple processors.
  • communication - Contains routines for performing communication needed to synchronize data across processors.
  • hyperbolic - Contains routines for performing conservative hyperbolic advances.
  • elliptic - Contains routines for solving linear systems of equations such as poisson's equation used by the self-gravity module.
  • explicit - Contains routines for solving parabolic equations through explicit sub-cycling
  • physics - Contains definitions and functions related to the particular equations being solved.
  • io - Contains routines for writing and reading simulation data to disk.
  • modules - Contains various routines for controlling initial and boundary conditions
  • source - Contains various routines for applying source terms.
  • processing - Contains routines for analyzing the data and producing various data products.
  • layouts - Contains modules for mapping AMR datasets onto uniform subgrids.
  • threads - Contains modules for handling threading of level advances.

GraphViz image

Chapter 2. The AMR Engine in AstroBEAR

Chapter 3. Communication in AstroBEAR

Chapter 4. Parallelism

Load Balancing

Threading of Level advances

Chapter 5. Objects in AstroBEAR

Initial Condition Objects

Boundary Condition Objects

Boundary Condition Objects

Chapter 6. The Hyperbolic Solvers

The Sweep Scheme for Unsplit CTU

The Muscl Scheme for Split advances

Chapter 7. The Elliptic/Parabolic Solvers

The self gravity solver

The thermal conduction solver

Chapter 8. Lagrangian Particles in AstroBEAR

Chapter 9. IO


AstroBEAR is an Adaptive Mesh Refinement (AMR) distributed-memory parallel Eulerian code written in FORTRAN 90 which supports hydro- or magnetohydrodynamics in two or three dimensions. AstroBEAR is derived from the BEARCLAW AMR package written by Sorin Mitran. Users write their own project modules in AstroBEAR by specifying initial conditions and any continual processes, such as an inflow condition. There exists a variety of modules already built; users are encouraged to use these as a starting point for their own module(s).

Once a module has been written and the executable is ready to be run, users specify simulation parameters—-such as the resolution, how many levels of AMR are desired, source term physics such as radiative cooling, and so forth—-in the data files. The code is most commonly run on Beowulf-type computing clusters, though it has been successfully ported to the BlueGene/P architecture.

AstroBEAR Code Topics

  • [ProjectStatistics] — A table to collect revision/module/machine information from group members


BackLinks

Attachments (1)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.