The nds Command#
The NDSampler module provides the nds command to manage your perturbed nuclear data libraries.
Building a Perturbed Library (PENDF)#
Building a perturbed library using the PENDF method is done using the nds pendf command.
It must be provided the path to a YAML file containing a structured description of what you want.
It should contain the following information:
A
summaryelement giving a short description of the perturbed libraryA
nameelement giving a name to your perturbed libraryA
reuseelement telling what existing HDF5 library your perturbed library should rely on. This library should be installed with NDOmcer (i.e. it appears inndo list)A
nsmpelement telling how many samples should be createdA
temperatureelement telling what temperature should be used for Doppler broadeningA
kindelement telling what nuclear data should be perturbed (for now, onlyxsis implemented)A
sampleselement, containing details about what nuclide you want to perturbThis element contains sub-element structured like so:
nuclide: xs_library cov_library@group_structure
Here is a sample of what an nds pendf input file looks like:
summary: Sampling Pu239 using TENDL2023 Covariances and a JEFF-3.3 base
name: jeff33-Pu239
reuse: jeff33
nsmp: 10
temperature: 600
kind: xs
samples:
Pu239: jeff33 tendl2023@ECCO-33
This will create 10 perturbed libraries in which Pu239 cross-sections from JEFF-3.3 are perturbed using covariance matrices from TENDL-2023 on an ECCO-33 group structure, at a temperature of 600K.
All other nuclide cross-sections are taken from the jeff33 library installed with NDOmcer.
The mapping to nominal cross-sections are done in the generated cross_sections.xml files rather than through the duplication of HDF5 files.
Building a Perturbed Library (HDF5)#
Building a perturbed library using the HDF5 method is done using the nds hdf5 command.
It must be provided the path to a YAML file containing a structured description of what you want.
It should contain the following information:
A
summaryelement giving a short description of the perturbed libraryA
nameelement giving a name to your perturbed libraryA
reuseelement telling what existing HDF5 library your perturbed library should rely on. This library should be installed with NDOmcer (i.e. it appears inndo list)A
nsmpelement telling how many samples should be createdA
kindelement telling what nuclear data should be perturbed (for now, onlyxsis implemented)A
sampleselement, containing details about what nuclide you want to perturbThis element contains sub-element structured like so:
nuclide: xs_library cov_library@group_structure
Here is a sample of what an nds hdf5 input file looks like:
summary: Sampling Pu239 using TENDL2023 Covariances and a JEFF-3.3 base
name: jeff33-Pu239
reuse: jeff33
nsmp: 10
kind: xs
samples:
Pu239: jeff33 tendl2023@ECCO-33
This will create 10 perturbed libraries in which Pu239 cross-sections from JEFF-3.3 are perturbed using covariance matrices from TENDL-2023 on an ECCO-33 group structure, at a temperature of 600K.
All other nuclide cross-sections are taken from the jeff33 library installed with NDOmcer.
The mapping to nominal cross-sections are done in the generated cross_sections.xml files rather than through the duplication of HDF5 files.
Note that the input file is essentialy the same as the PENDF one.
The main difference between the two method is that nds pendf generates covariance matrices on the fly using ERRORR whereas nds hdf5 uses preprocessed matrices written on disk.
Building Covariance Matrices#
The nds cov command allows you to build covariance matrices for a given multigroup energy structure, using the ERRORR module from NJOY.
For instance, if you have the TENDL-2023 library installed through NDFetcher, you can run:
$ nds cov tendl23 --ign ECCO-33
The ign argument must correspond to the name of the desired group structure, or to the associated number in NJOY.
The following table show what group structures are available.
ign |
Name |
|---|---|
2 |
CSWEG-239 |
3 |
LANL-30 |
4 |
ANL-27 |
5 |
RRD-50 |
6 |
GAM-I-68 |
7 |
GAM-II-100 |
8 |
LASER-THERMOS-35 |
9 |
EPRI-CPM-69 |
10 |
LANL-187 |
11 |
LANL-70 |
12 |
SAND-II-620 |
13 |
LANL-80 |
14 |
EURLIB-100 |
15 |
SAND-IIA-640 |
16 |
VITAMIN-E-174 |
17 |
VITAMIN-J-175 |
18 |
XMAS-NEA-LANL |
19 |
ECCO-33 |
20 |
ECCO-1968 |
21 |
TRIPOLI-315 |
22 |
XMAS-LWPC-172 |
23 |
VIT-J-LWPC-175 |
24 |
SHEM-CEA-281 |
25 |
SHEM-EPM-295 |
26 |
SHEM-CEA-EPM-361 |
27 |
SHEM-EPM-315 |
28 |
RAHAB-AECL-89 |
29 |
CCFE-660 |
30 |
UKAEA-1025 |
31 |
UKAEA-1067 |
32 |
UKAEA-1102 |
33 |
UKAEA-142 |
34 |
LANL-618 |
Additionally you can provide the -j flag with an integer value to use multiple processes to build the matrices.
If the matrix database already exists, you can regenerate it from scratch by providing the --clean flag.
Listing Installed Perturbed Libraries#
The nds list command gives you a summary of what perturbed libraries you have installed:
$ nds list
Kind Name Base Samples Nuclides Description
------ ------------ ------ --------- ---------- -----------------------------------------
HDF5 jeff33-Pu239 jeff33 10 1 Create sample for Pu239 nuclide in jeff33
PENDF jeff33-Pu239 jeff33 10 1 Create sample for Pu239 nuclide in jeff33