Parallel Version of Streamline Generation Code Implemented with MPICH |
tar format (230 KB) tar.gzip format (45 KB) Source Code for SunOS
Code testing:
|
Brief description of the Project:
This code is a parallel implementation of a versatile algorithm for computation of streamlines, magnetic field lines or charged particle trajectories. Each of these has in common that a set of generalized "trajectories" is generated, beginning from a set of specified initial conditions. The trajectories are generated by integrating a set of ordinary differential equations (ODE's) -- either three (for streamlines and field lines) or six (for charged particle orbits). In each case one or more vector fields must be specified; these appear as coefficients in the ODE's. Physically what is required is
The code works programming the master node to pass out "jobs" to the
worker nodes. Each job includes the initial data and some parameters. Load
balancing is achieved in a standard way: When a node is done a job, it
asks the master if there is another job to do. Results of each job are
written to disk. The ODE's are integrated using an adaptive step
fourth order Runge Kutta method with a fifth order error estimate. Several
standard cases are built in at present: Choice of ODE's (field line or
charged particle orbit equations), and choice of magnetic field input model
(slab, slab plus 2D, data read from file). Several test cases are also
installed in the code. Provisions are made for user-supplied ODE's (routine
DERIVS) and user-supplied electromagnetic fields (EMFIELDS) that are externally
linked and communicate with the internal routines through standard data
structures.
|