There are two main problems in preparing material cards:
- calculation of material composition, and
- calculation of material density.
There was already an attempt to address this issue in MCNP family. Jerzy Cetnar has written MCB code, a continuous-energy burnup extension over MCNP4c, which has a number of nice features. MCB allows a much better way to define materials by introducing material mixes and human-friendly nuclide identifiers. The following example illustrates them:
Code: Select all
m1 nlib=03c Pu239 0.4 $ equivalent to 94239 Pu240 0.6 m2 nlib=03c Am241 0.95 Am242m 0.05 $ equivalent to 95342 mix10 1 0.5 $ this mix (material) can also be referred in cell cards 2 0.5 m3 Zr.03c 1 $ equivalent to 40000.03c, depending on xsdir one can skip the nuclide extension mix10 20 0.4 $ this material can also be referred in cell cards 3 0.6
- Natural compositions are not available in some data libraries; therefore compounds ZZZ000 must be replaced by combination of corresponding ZZZAAA. What does the user do? The user opens a material handbook, or googles to Wikipedia or KAERI/BNL websites, because natural compositions these are more-or-less constants. Why not to put them inside the code?
- Sometimes nuclides are missing in some libraries, and therefore compositions must to be corrected. Simple commenting is not always a good idea, because in this case all elements are corrected instead of correcting only the one with missing parts.
- The library may not have data for the requested temperature, or the nuclide keys (e.g. 03c) may be different - user needs to correct the keys every time the library is changed. Having standard keys helps to solve the problem though.
- Specific for MCNP only: In MCNP there is one very nasty problem of material temperature value (in MeV). If it slightly changes between different libraries (e.g. due to rounding) and one forgets to check and correct (for all cells!), then the cross-sections are modified by free-gas treatment to 300K and then back to the requested temperature. There is no this problem in Serpent, thanks to Jaakko.
I understand that it may be quite difficult to add such functionality to Serpent. On the other hand, the benefits may be enormous for the user, so the motivation is quite strong. May be some intermediate solution can help:
Code: Select all
set matmixes " Pu Pu-239 .5 Pu-240 .5 fuel Pu 0.2 Zr balance "