1D Lagrangian Rezoner

Description

The rezoner takes a `background geometry' and pastes `foreground geometries' onto it. Each geometry consists of a list of nodes (position, velocity, list of cells using node) and a list of cells (thermodynamic state, material index, list of nodes defining cell). The rezoner is simplistic. The background geometry is used as the starting point. (It can be produced with the problem generator.) With reference to each foreground geometry in turn, the position of each node and cell centre in the background geometry are compared with the set of foreground cells. If the position lies within the cell, then its values are copied to the background node or cell. In the case of the background nodes, the velocity in the foreground geometry is averaged over the cell to estimate a value for the cell centre. It is this value which is copied to the background node. (No volume-weighted averaging is performed in this version of the rezoner.)

Input

All ASCII, read from stdin.
Materials
number
For each:
   definition

Materials are of Ariadne V6.0 type mat_type.

Background geometry
Nodes
number
For each:
   position velocity
   number_of_cells_using_node
   For each:
      index
Cells
number
For each:
   density specific_internal_energy fraction_reacted
   index_of_material
   number_of_nodes_defining_cell
   For each:
      index
Foreground geometries
number
For each:
   geometry data as per background geometry

Output

ASCII, written to stdout. Geometry definition as above.

Files