pyne/pyne — pull request #130 by elliottbiondo (2013-06-24 05:50:59+00:00)
Title: Added a Wwinp class

The Wwinp class stores all the information from a single MCNP WWINP file. Class variable names for WWINP header information match the names given in the MCNP User's Guide Appendix J. The actual weight window lower bounds are stored on a structured mesh attribute. This currently relies on r2s.scdmesh but will soon rely on only PyTAPS. All Cartesian WWINP are supported including WWINP files that specify both neutron and photon weight window lower bounds. Cylindrical capabilities could easily be added if structured cylindrical capabilities are added to PyTAPS.

This class has 3 public methods:
1. ```read_wwinp() ``` reads a WWINP file and creates a Wwinp object.
2. ```read_mesh()``` creates a fully-specified Wwinp from only a structured mesh tagged with weight window lower bounds (on voxels) and energy bounds (on rootSet).
3. ```write_wwinp()``` writes a Wwinp object to a WWINP file.

The 4th logical method that would be expected would be ```write_mesh()``` but this is trivial with PyTAPS/r2s.scdmesh so it was not reimplemented here. These three methods will facilitate further work with weight window generation schemes.

Tests were made for each method to cover following cases:
- neutron WWINP
- photon WWINP
- neutron and photon WWINP
- 3D
- 2D (1D is redundant case of 2D)
- multiple energy groups
- single energy groups

This pull request is rebased against the most recent changes to pyne/staging.