To continue in the effort of merging Sam Shaner's transient capability,
this next PR adds the class DiffusionCoefficient to mgxs.py. It uses
the TransportXS class, but has some unique features in get_condensed_xs()
requiring its own function. There won't be any other MGXS classes added
after this.
I updated the docstrings and the appropriate regression tests.
Since my system outputs different formatting for the
mgxs_library_distribcell test, it is possible this test will continue
to fail. However, I did my best to modify it by hand so that it will pass.
In the get_pandas_dataframe function of SurfaceMGXS, I removed all by_nuclide and micro options.
I also ordered the dataframe so that results would be ordered reliably.
This was necessary for tests to pass. Since the domain object is a little different for current than for the other classes,
I had to treat the reorder uniquely for the SurfaceMGXS class because of the presence of the mesh surface filter.
While other classes assume all meshes have a x, y, and z component, regardless of the dimension, this is not true in SurfaceMGXS. Therefore, I added an if statement for each dimension.
Since the inherted get_pandas_dataframe sorted values by x, y, z, and the current has a different labelling system
(doesn't include z if only 2 dimensional, and then also includes x-in, x-out, y-in, y-out, z-in z-out...)
I had to redefine get_pandas_dataframe in the SurfaceMGXS class and remove the sorting.
I had to put domain properties back into the SurfaceMGXS class to perform a checktype on the domain_type.
I updated the regression test mgxs_library_mesh to expect the correct input.
However, now the test fails for a 2-dimensional mesh. In 3D, the Current MGXS fails because it does not contain a 'z' dimension.
Meanwhile, all the other classes contain a 'z' dimension, equal to 1.
I need to figure out why the mesh used by SurfaceMGXS doesn't contain the same information as the other classes, even though it is the same mesh used in all.