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.
Manually removed the "group" variable from the results as to not
mess up the formatting of the results. This might still require
trial and error to get it to pass exactly right.
This test often fails due to the formating of the results.
Now, I checked manually, and all these results are identical,
except of course for removing the "group" variable on the penultimate
chunk of results which is decay-rate.
So hopefully this formatting I get on my machine passes the other systems as well.
Previously used MGXS_TYPES[:-1] but to be explicit, I instead looped over all MGXS_TYPES and excluded current.
These tests cannot run with current because:
-distribcell is not a valid domain for current
-nuclide/no_nuclides option is not relevant for current
1) Kept by_nuclide, num_nuclides, and nuclides in the docstrings because when building a mgxs library for all mgxs_types, the variables should be the same accross all classes.
However, I noted that they were unused for a SurfaceMGXS.
2) Removed all code related to nuclides and micro xs since they were unused anyway.
3) Removed the possibility of computing a Current with any domain other than mesh.
Included an error message if a current mgxs object is instantiated with any domain other than mesh.
Since mesh domains and by_nuclide features are uncompatible, an existing message is already raised when mesh and by_nuclide are used together.
4) Changed estimator type to analog.