Skip to content

In this project we develop an OpenNTP package to solve the multi-group neutron transport equation.

License

Notifications You must be signed in to change notification settings

mohamedlahdour/OpenNTP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neutron Transport Package OpenNTP

In this project we develop a package OpenNTP to solve a neutron transport equation.

Neutron Transport Package OpenNTP(Open Neutron Transport Package from the Radiations and Nuclear Systems Group), is an open-source code written in FORTRAN90 for a pedagogical purpose to solve the steady-state multigroup neutron transport equation using either:

  • Collision Probablity Method (CP) in One-Dimensional for Slab, Cylindrical or Spherical geoemtry.
  • Discrete Ordinate Method (SN) in One or Two-Dimensional for Cartesian Geometry.
  • Method of Characteristics (MOC) in One-Dimensional for Slab Geometry. The code, including the graphical user interface is developed and maintained by Mohamed LAHDOUR (PhD student) and Prof. Tarek EL BARDOUNI from University Abdelmalek Essaadi Tetouan Morocco .

The directory structure of OpenNTP

    cd OpenNTP

This directory contains two folders Docs (documentation) and src (the program source files)

    cd OpenNTP/src/app/sources

This directory contains OpenNTPsource files written in FORTRAN90 such as:

  • TRANSPORT_CP.F90 (for the pollision probablity method in One-Dimensional),

  • TRANSPORT_SN.F90 (for the discrete ordinate method in One-Dimensional),

  • TRANSPORT_MOC.F90 (for the method of characteristics in One-Dimensional) and

  • TRANSPORT_2D_SN.F90 (for the discrete ordinate method in two-Dimensional)

      cd OpenNTP/src/app
    

This directory contains the modules generated by f2py3 namely CP1D.so, SlabSN.so, SlabMOC.so and SN2D.so which will be imported by python3 as modules.

    cd OpenNTP/src

This directory contains the python3 files for Graphical User Interface (GUI)

Quick Install Guide

This quick install guide outlines the basic steps needed to install OpenNTPon your computer.

Installing on Linux

  1. If you are using Ubuntu 20.04, open a terminal in a GNU/Linux box then install gfortran with the following commands:

     sudo apt-get install gfortran
    
  2. You need to install numpy (F2PY) and matplotlib library to run the package OpenNTP:

     sudo apt-get install python3-numpy
     sudo apt-get install python3-matplotlib
    
  3. You need to install PyQt5 on Ubuntu with python to run the GUI:

     sudo apt-get install python3-pyqt5
    
  4. Install the OpenNTP package

     git clone  https://github.com/mohamedlahdour/OpenNTP.git
    
  5. Import the OpenNTP and run the package in the following way:

      cd OpenNTP
      $ python3 gui.py
    

User's Guide

  1. Graphical User Interface

A graphical user interface written in Python programing language has been developed to simplify the use of package OpenNTP. After starting the software by typing the following command line in a terminal:

     cd OpenNTP
     $ python3 gui.py

A main window (GUI) of the package OpenNTPon an Ubuntu Linux machine will be displayed as in Figure bellow.

Image 0

  1. Examples & test suite

2.2. Two-dimensional benchmark

2.2.1. Creating JSON Input File

The input data file must be in JSON format. The first method is to write it directly in Text editor as is shown in the figure bellow, which illustrates an example input file of a simplified nuclear reactor with a quarter of the x,y square 2D core taken from Barros et al., 2003

    {
      "data": {
        "parameter": {
          "id": 100,
          "Total number of energy groups": 1,
          "Total number of materials": 3,
          "Total number of pin cells": 3,
          "Total number of assemblies": 1,
          "Core":[[1]],
          "Total number of active pin cells": 4,
          "Number of angular discretizations": 8,
          "The l-order Legendre polynomial": 0,
          "Maximum number of iterations": 500,
          "Criterion of Keff convergence": 1.0e-6
        },
        "Assemblies": [
          {
            "id": 1,
            "nom": "assembly 1",
            "assembly":[[1,2,3,3,3,3],
                        [2,2,3,3,3,3],
                        [3,3,3,3,3,3],
                        [3,3,3,3,3,3],
                        [3,3,3,3,3,3],
                        [3,3,3,3,3,3]]
          }
    ],
        "PinCells": [
          {
            "id": 1,
            "nom": "cell 1",
            "width_x":[10],
            "width_y":[10],
            "mat_fill": [[1]],
            "fine_mesh": [[2]]
          },
          {
            "id": 2,
            "nom": "cell 2",
            "width_x":[10],
            "width_y":[10],
            "mat_fill": [[2]],
            "fine_mesh": [[2]]
          },
          {
            "id": 3,
            "nom": "cell 3",
            "width_x":[10],
            "width_y":[10],
            "mat_fill": [[3]],
            "fine_mesh": [[2]]
          }
    ],
        "materials": [
          {
            "id": 1,
            "nom": "Mat 1",
            "XSTotal": [0.3264],
            "XSNuFission": [0.11491],
            "XSScatter Matrix":[[0.225216]],
            "XSChi":  [1.0]
          },
          {
            "id": 2,
            "nom": "Mat 2",
            "XSTotal": [0.3264],
            "XSNuFission": [0.10072],
            "XSScatter Matrix":[[0.225216]],
            "XSChi":  [1.0]
          },
          {
            "id": 3,
            "nom": "Mat 3",
            "XSTotal": [0.3264],
            "XSNuFission": [0.0],
            "XSScatter Matrix":[[0.29376]],
            "XSChi":  [0.0]
          }
        ]
      }
    }

2.2.2. Generating JSON Input File

To facilitate the creation of a new OpenNTP input file, a set of dialog boxes have been developed (Below) which allows users to create the OpenNTP input file in a simpler, faster and interactive. Users can fill up all information about the OpenNTP input file (including: number of group energy, materials, Pin cells, assemblies, type of geometry, multi-group cross sections ...) and once they have specified input files in JSON format will be automatically created in the window Text editor by clicking on button Generate Input file.

  • Definition of Pin Cells by introducing in each coarse meshes size along the x and y-axis, then the material index and the number of fine mesh.

Image 1

  • inserting the pin cells index into each assembly.

Image 2

  • Definition of the general structure of the reactor core by inserting the assembly indices in their locations.

Image 3

  • Insertion of total multi-group macroscopic cross section data.

Image 4

  • Insertion of nu-fission multi-group macroscopic cross section data.

Image 5

  • Insertion of scatternig matrix multi-group macroscopic cross section data

Image 6

  • Insertion of fission spectrum data.

Image 7

2.2.3. Running OpenNTP under a GUI

The Run button is used to running the multi-group scheme, and the figure below shows the values of the multiplication factor as a function of the iteration numbers.

Image 8

2.2.4. Geometry Visualizations

The geometry button allowing to plot in two dimensions the geometry to study. The plotting mode of the geometry is based on the presence of an input file. A depiction of the geometry for the example input file given in sub section Creating JSON Input File is illustrated in Figure bellow

Image 9

2.2.5. Flux Visualizations

The Plot button refers to a set of routines programming in fortran and python to plot the scalar flux in space of one or two-dimensional and in each energy group. The figure bellow shows the flux for the example input file given in sub section Creating JSON Input File with four regions and four materials after clicking on the Plot button.

Image 10

2.2.6. Pin Power Visualizations

Next we will visualize the pin power results obtained from the OpenNTP calculations.

Image 11

2.2.6. Level symmetric gaussian quadrature sets visualizations

The level-symmetric quadrature set is used in the Discrete Ordinates method (Lewis and Miller, 1984). The subscript refers to the number of directions along each axis with half being positive and half negative. The figure below give the weights and angles used for each set in the 1st octant which will be displayed automatically by clicking on the Ordinate button

Image 12

2.2.7. Simple Output

The following is the corresponding output to the above case. A brief outline of the output file contents is version and run time information, print of input values of the name list variables, print of relevant parameters after setup, calculation run time parametres method, scalar flux solution and output parameters solution to transport eqaution.

    ********************************************************************************
    ERSN, UNIVERSITY ABDELMALEK ESSAADI FACULTY OF SCIENCES - TETOUAN, MOROCCO
    CODE  DEVELOPED  BY  MOHAMED  LAHDOUR,  PHD  STUDENT
    OpenNTP:         SN  DISCRETE  ORDINATES  METHOD
    DIMENSION:       TWO DIMENSIONS (2D) 
    GEOMETRY:        CARTESIAN
    VERSION NUMBER:  1.2
    VERSION DATE:    10  September  2020
    RAN ON:          2020-09-08 16:46:12.96   (H:M:S)
    ********************************************************************************
               ----------------------------------------------------------
                        INPUT  PARAMETER - VALUES  FROM  INPUT
               ----------------------------------------------------------

    ENERGY GROUPS NUMBER:                               1
    PIN CELLS NUMBER:                                   3
    ASSEMBLIES NUMBER:                                  1
    X REGIONS NUMBER PIN CELL:                          1
    Y REGIONS NUMBER PIN CELL:                          1
    MATERIALS NUMBER:                                   3
    SIZE OF EACH X REGION PIN CELL 1  :                10.00000
    SIZE OF EACH Y REGION PIN CELL 1  :                10.00000
    SIZE OF EACH X REGION PIN CELL 2  :                10.00000
    SIZE OF EACH Y REGION PIN CELL 2  :                10.00000
    SIZE OF EACH X REGION PIN CELL 3  :                10.00000
    SIZE OF EACH Y REGION PIN CELL 3  :                10.00000
    NUMBER OF DIRECTIONS ALONG EACH AXIS:               8
    ORDER LEGENDRE POLYNOMIAL:                          0
    TOTAL NUMBER OF X FINE MESHES:                     12
    TOTAL NUMBER OF Y FINE MESHES:                     12
    CONVERGENCE CRITERION of KEFF AND FLUX:       1.0E-06

               ----------------------------------------------------------
                          CALCULATION  RUN-TIME  PARAMETERS  SN
               ----------------------------------------------------------

    LEVEL  SYMMETRIC  GAUSSIAN  QUADRATURE  SETS: 

    --------------------------------------------------------------------------------------
    |     N. ORDER           MU              ETA             PSI           WEIGHTS       |
    --------------------------------------------------------------------------------------
    |          1          9.51190E-01     2.18218E-01     2.18218E-01     1.20988E-01    |
    |          2          7.86796E-01     2.18218E-01     5.77350E-01     9.07407E-02    |
    |          3          7.86796E-01     5.77350E-01     2.18218E-01     9.07407E-02    |
    |          4          5.77350E-01     2.18218E-01     7.86796E-01     9.07407E-02    |
    |          5          5.77350E-01     5.77350E-01     5.77350E-01     9.25926E-02    |
    |          6          5.77350E-01     7.86796E-01     2.18218E-01     9.07407E-02    |
    |          7          2.18218E-01     2.18218E-01     9.51190E-01     1.20988E-01    |
    |          8          2.18218E-01     5.77350E-01     7.86796E-01     9.07407E-02    |
    |          9          2.18218E-01     7.86796E-01     5.77350E-01     9.07407E-02    |
    |         10          2.18218E-01     9.51190E-01     2.18218E-01     1.20988E-01    |

    PSEUDO  CROSS  SECTIONS  DATA: 


            MATERIAL :   1

    -------------------------------------------------------------------------------------------------------------
    |       GROUP           TOTAL        ABSORPTION      NU*FISSION      SCATTERING      FISSION SPECTRUM       |
    -------------------------------------------------------------------------------------------------------------
    |          1          3.26400E-01     1.01184E-01     1.14910E-01     2.25216E-01     1.00000E+00           |

            MATERIAL :   2

    -------------------------------------------------------------------------------------------------------------
    |       GROUP           TOTAL        ABSORPTION      NU*FISSION      SCATTERING      FISSION SPECTRUM       |
    -------------------------------------------------------------------------------------------------------------
    |          1          3.26400E-01     1.01184E-01     1.00720E-01     2.25216E-01     1.00000E+00           |

            MATERIAL :   3

    -------------------------------------------------------------------------------------------------------------
    |       GROUP           TOTAL        ABSORPTION      NU*FISSION      SCATTERING      FISSION SPECTRUM       |
    -------------------------------------------------------------------------------------------------------------
    |          1          3.26400E-01     3.26400E-02     0.00000E+00     2.93760E-01     0.00000E+00           |

               ----------------------------------------------------------
                       REACTION RATE SOLUTION IN THE REACTOR CORE        
               ----------------------------------------------------------

    REACTION RATE SOLUTION PER MATERIAL PER ENERGY  GROUP: 


            MATERIAL :   1

    ----------------------------------------------------------------------------------------
    |       GROUP           TOTAL        ABSORPTION      NU*FISSION      SCATTERING        |
    ----------------------------------------------------------------------------------------
    |          1          4.34270E+01     1.34624E+01     1.52886E+01     2.99646E+01      |

           MATERIAL :   2

    ----------------------------------------------------------------------------------------
    |       GROUP           TOTAL        ABSORPTION      NU*FISSION      SCATTERING        |
    ----------------------------------------------------------------------------------------
    |          1          4.34270E+01     1.34624E+01     1.34006E+01     2.99646E+01      |

            MATERIAL :   3

    ----------------------------------------------------------------------------------------
    |       GROUP           TOTAL        ABSORPTION      NU*FISSION      SCATTERING        |
    ----------------------------------------------------------------------------------------
    |          1          4.34270E+01     4.34270E+00     0.00000E+00     3.90843E+01      |

               ----------------------------------------------------------
                                  NORMALIZED PIN POWER                   
               ----------------------------------------------------------

    -------------------------------------------------------------------------------------------
    |             1            2            3            4            5            6
    -------------------------------------------------------------------------------------------
    |   1   1.94264E+00  8.05401E-01  0.00000E+00  0.00000E+00  0.00000E+00  0.00000E+00
    |   2   8.05401E-01  4.46556E-01  0.00000E+00  0.00000E+00  0.00000E+00  0.00000E+00
    |   3   0.00000E+00  0.00000E+00  0.00000E+00  0.00000E+00  0.00000E+00  0.00000E+00
    |   4   0.00000E+00  0.00000E+00  0.00000E+00  0.00000E+00  0.00000E+00  0.00000E+00
    |   5   0.00000E+00  0.00000E+00  0.00000E+00  0.00000E+00  0.00000E+00  0.00000E+00
    |   6   0.00000E+00  0.00000E+00  0.00000E+00  0.00000E+00  0.00000E+00  0.00000E+00

               ----------------------------------------------------------
                    NORMALIZED SCALAR FLUX SOLUTION IN EACH PIN CELL     
               ----------------------------------------------------------

    FLUXES  PER  PIN CELL  PER  ENERGY  GROUP:

        P I N  C E L L       G R O U P 1

    -------------------------------------------------------------------------------------------
    |             1            2            3            4            5            6
    -------------------------------------------------------------------------------------------
    |   1   4.22644E+00  1.99911E+00  4.19516E-01  5.87915E-02  8.88593E-03  1.38960E-03
    |   2   1.99911E+00  1.10841E+00  2.63669E-01  4.10562E-02  6.62966E-03  1.10609E-03
    |   3   4.19516E-01  2.63669E-01  9.15996E-02  1.96766E-02  3.76927E-03  7.41365E-04
    |   4   5.87915E-02  4.10562E-02  1.96766E-02  6.52452E-03  1.71886E-03  4.73865E-04
    |   5   8.88593E-03  6.62966E-03  3.76927E-03  1.71886E-03  7.14541E-04  2.52099E-04
    |   6   1.38960E-03  1.10609E-03  7.41365E-04  4.73865E-04  2.52099E-04  1.11194E-04

               ----------------------------------------------------------
                            NORMALIZED SCALAR  FLUX  SOLUTION             
               ----------------------------------------------------------

    FLUXES  PER  MESH  PER  ENERGY  GROUP:

    M E S H       G R O U P 1

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    |             1            2            3            4            5            6            7            8            9           10           11           12
    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    |   1   1.51757E+01  1.25356E+01  8.31381E+00  4.55413E+00  1.96698E+00  6.89694E-01  2.72592E-01  9.60390E-02  4.08394E-02  1.45043E-02  6.50531E-03  2.05659E-03
    |   2   1.25356E+01  1.04705E+01  7.11655E+00  4.00482E+00  1.75449E+00  6.23031E-01  2.47885E-01  8.89812E-02  3.77109E-02  1.35766E-02  6.17408E-03  1.93921E-03
    |   3   8.31381E+00  7.11655E+00  5.18501E+00  3.08418E+00  1.37562E+00  5.05546E-01  2.03652E-01  7.65937E-02  3.18624E-02  1.22205E-02  5.34500E-03  1.83288E-03
    |   4   4.55413E+00  4.00483E+00  3.08418E+00  1.94754E+00  9.18779E-01  3.64076E-01  1.52467E-01  5.99611E-02  2.53957E-02  1.00772E-02  4.52120E-03  1.57397E-03
    |   5   1.96698E+00  1.75449E+00  1.37562E+00  9.18779E-01  5.04298E-01  2.32969E-01  1.01933E-01  4.36983E-02  1.84267E-02  8.07057E-03  3.51854E-03  1.34865E-03
    |   6   6.89694E-01  6.23031E-01  5.05546E-01  3.64076E-01  2.32969E-01  1.28958E-01  6.18999E-02  2.85876E-02  1.28548E-02  5.87919E-03  2.88652E-03  1.14267E-03
    |   7   2.72592E-01  2.47885E-01  2.03652E-01  1.52467E-01  1.01933E-01  6.18999E-02  3.44233E-02  1.70353E-02  8.36818E-03  4.26139E-03  2.22194E-03  1.00977E-03
    |   8   9.60390E-02  8.89812E-02  7.65938E-02  5.99611E-02  4.36983E-02  2.85876E-02  1.70353E-02  9.80037E-03  5.10214E-03  2.89464E-03  1.70953E-03  7.45139E-04
    |   9   4.08394E-02  3.77109E-02  3.18624E-02  2.53957E-02  1.84267E-02  1.28548E-02  8.36817E-03  5.10214E-03  3.27840E-03  1.96886E-03  1.19390E-03  5.78951E-04
    |  10   1.45042E-02  1.35766E-02  1.22205E-02  1.00772E-02  8.07056E-03  5.87918E-03  4.26139E-03  2.89463E-03  1.96886E-03  1.35837E-03  8.33637E-04  4.18694E-04
    |  11   6.50531E-03  6.17409E-03  5.34500E-03  4.52120E-03  3.51855E-03  2.88652E-03  2.22194E-03  1.70953E-03  1.19390E-03  8.33638E-04  5.93469E-04  2.85603E-04
    |  12   2.05658E-03  1.93921E-03  1.83288E-03  1.57396E-03  1.34865E-03  1.14267E-03  1.00977E-03  7.45136E-04  5.78951E-04  4.18693E-04  2.85603E-04  1.69660E-04

               ----------------------------------------------------------
                 OUTPUT  PARAMETER - SOLUTION  TO  TRANSPORT  EQUATION   
               ----------------------------------------------------------

    K-EFF                    =      0.998636
    TOTAL OUTER ITERATIONS   =            79
    TOTAL INNER ITERATIONS   =            36
    TOTAL EXECUTION TIME     =    0:00:00.44   (H:M:S)

    ********************************************************************************

2.3. Slab

Setting up input file for slab geometry in two energy groups with isotropic scattering source.

    {
      "data": {
        "parameter": {
          "id": 100,
          "Total number of energy groups": 2,
          "Total number of materials": 2,
          "Total number of pin cells": 2,
          "Total number of assemblies": 1,
          "Total number of active pin cells": 1,
          "Core":[1],
          "Number of angular discretizations": 10,
          "The l-order Legendre polynomial": 0,
          "Maximum number of iterations": 200,
          "Criterion of Keff convergence": 1.0e-5
        },
        "Assemblies": [
          {
            "id": 1,
            "name": "1",
            "assembly": [2,1,2]
          }
    ],
        "PinCells": [
          {
            "id": 1,
            "name": "URRb",
            "width":[9.726784],
            "mat_fill": [1],
            "fine_mesh": [10]
          },
          {
            "id": 2,
            "name": "H2O",
            "width":[5.630757],
            "mat_fill": [2],
            "fine_mesh": [10]
          }
    ],
        "materials": [
          { 
            "id": 1, 
            "name": "URRb",
            "XSTotal": [0.88721, 2.9727],
            "XSNuFission": [0.00209, 0.07391],
            "XSScatter Matrix":[[[0.838920, 0.04635],
                                 [0.000767, 2.91830]]],
            "XSChi":  [1.0, 0.0]
          },
          { 
            "id": 2, 
            "name": "H2O",
            "XSTotal": [0.88798, 2.9865],
            "XSNuFission": [0, 0],
            "XSScatter Matrix":[[[0.83975, 0.04749],
                                 [0.000336, 2.96760]]],
            "XSChi":  [0, 0]
          }
        ]  
      }  
    }
  • Geometry in a one-dimensional slab

Image 13

  • Flux in a one-dimensional slab

Image 14

2.4. Cylinder or Pin Cell

An example for cylindrical infinite cell equivalent to the TRIGA MARK-II research reactor pin cell is presented here by using 7 energy groups

    { 
      "data": { 
        "parameter": { 
          "id": 100,
          "Total number of energy groups": 7,
          "Total number of materials": 5,
          "Total number of pin cells": 5,
          "Total number of assemblies": 1,
          "Core": [1],
          "Total number of active pin cells": 1,
          "Number of angular discretizations": 2,
          "The l-order Legendre polynomial": 0,
          "Maximum number of iterations": 200,
          "Criterion of Keff convergence": 1.0E-6
        }, 
        "Assemblies": [
          { 
            "id": 1, 
            "name": "Assembly 1",
            "assembly": [1,2,3,4,5]
          }
    ], 
        "PinCells": [
          { 
            "id": 1, 
            "name": "Pin Cell 1",
            "ray": [0.3175],
            "mat_fill": [1],
            "fine_mesh": [5]
          },
          { 
            "id": 2, 
            "name": "Pin Cell 2",
            "ray": [1.82769],
            "mat_fill": [2],
            "fine_mesh": [5]
          },
          { 
            "id": 3, 
            "name": "Pin Cell 3",
            "ray": [1.83150],
            "mat_fill": [3],
            "fine_mesh": [5]
          },
          { 
            "id": 4, 
            "name": "Pin Cell 4",
            "ray": [1.88230],
            "mat_fill": [4],
            "fine_mesh": [5]
          },
          { 
            "id": 5, 
            "name": "Pin Cell 5",
            "ray": [2.285814144],
            "mat_fill": [5],
            "fine_mesh": [5]
          }
    ],
        "materials": [
          { 
            "id": 1, 
            "nom": "material 1",
            "XSTotal": [0.297551431, 0.288909664, 0.290306468, 0.286637159, 0.295583239, 0.326837471, 0.155639234],
            "XSNuFission": [0, 0, 0, 0, 0, 0, 0],
            "XSScatter Matrix":[[[0.269680893, 0.021221626, 0, 0, 0, 0, 0], 
                                 [0.015676686, 0.263059691, 0.005057992, 0, 0, 0, 0], 
                                 [0, 0.013507066, 0.273815991, 0.001186857, 0, 0, 0],
                                 [0, 0, 0.014034288, 0.270365363, 0.002092507, 0, 0], 
                                 [0, 0, 0, 0.00079017, 0.292969338, 0,  0], 
                                 [0, 0, 0, 0, 0.001078437, 0.32539832 , 0], 
                                 [0, 0, 0, 0, 0.000007539, 0.011162732, 0.14376993]]],
            "XSChi":  [0, 0, 0, 0, 0, 0, 0]
          },
          { 
            "id": 2, 
            "nom": "material 2",
            "XSTotal": [2.994544,  1.408450959, 0.817921932, 0.633026483, 0.650866502, 0.515434679, 0.243844582],
            "XSNuFission": [0.362087986, 0.179080763, 0.09568437, 0.03889374, 0.013653221, 0.001011529, 0.00163296],
            "XSScatter Matrix":[[[2.739733851, 0.036287563, 0.014790886, 0, 0, 0, 0],
                                 [0.038125613, 1.255653823, 0.014136713, 0, 0, 0, 0], 
                                 [0.166974328, 0.274556127, 0.320581789, 0.00109001, 0, 0, 0], 
                                 [0.036264407, 0.11429219, 0.651920757, -0.19634513, 0.001532029, 0, 0], 
                                 [0.003270334, 0.00846593, 0.051970962, 0.052892578, 0.512276254, 0, 0],
                                 [0.000000452, 0.000001176, 0.000010132, 0.000008685, 0.162129535, 0.352055605, 0], 
                                 [0, 0, 0.000000177, 0.000000059, 0.001637495, 0.098331459, 0.142495556]]],
            "XSChi":  [0, 0, 0, 0, 0.000390, 0.126214, 0.872105]
          },
          { 
            "id": 3, 
            "nom": "material 3",
            "XSTotal": [0, 0, 0, 0, 0, 0, 0],
            "XSNuFission": [0, 0, 0, 0, 0, 0, 0],
            "XSScatter Matrix":[[[0, 0, 0, 0, 0, 0, 0],
                                 [0, 0, 0, 0, 0, 0, 0],
                                 [0, 0, 0, 0, 0, 0, 0],
                                 [0, 0, 0, 0, 0, 0, 0], 
                                 [0, 0, 0, 0, 0, 0, 0],
                                 [0, 0, 0, 0, 0, 0, 0],
                                 [0, 0, 0, 0, 0, 0, 0]]],
            "XSChi":  [0, 0, 0, 0, 0, 0, 0]
          },
          { 
            "id": 4, 
            "nom": "material 4",
            "XSTotal": [1.153239138, 1.012997908, 0.947913799, 0.908546838, 0.966825787, 0.46508365, 0.201018163],
            "XSNuFission": [0, 0, 0, 0, 0, 0, 0],
            "XSScatter Matrix":[[[0.810739629, 0.066072482, 0, 0, 0, 0, 0], 
                                 [0.070201393, 0.778857964, 0.018049333, 0, 0, 0, 0], 
                                 [0.000005432, 0.055959691, 0.806723946, 0.003927282, 0, 0, 0],
                                 [0, 0, 0.061596098, 0.790102323, 0.005981459, 0, 0],
                                 [0, 0, 0, 0.003658891, 0.950937049, 0 , 0], 
                                 [0, 0, 0, 0, 0.005035727, 0.459136241, 0], 
                                 [0, 0, 0, 0, 0.000075732, 0.014066679, 0.185277698]]],
            "XSChi":  [0, 0, 0, 0, 0, 0, 0]
          },
          { 
            "id": 5, 
            "nom": "material 5",
            "XSTotal": [3.102999797, 1.73516897, 0.980823407, 0.642418097, 0.567747919, 0.419879925, 0.201975672],
            "XSNuFission": [0, 0, 0, 0, 0, 0, 0],
            "XSScatter Matrix":[[[2.631785406, 0.437581882, 0.00907283, 0, 0, 0, 0],
                                 [0.609582022, 1.041127377, 0.071965385, 0, 0, 0, 0],
                                 [0.141504305, 0.538385484, 0.292249692, 0.002089256, 0, 0, 0], 
                                 [0.036338638, 0.123430676, 0.814518036, -0.336757332, 0.001951418, 0, 0], 
                                 [0.003425563, 0.009933065, 0.061937554, 0.066020159, 0.425993565, 0, 0], 
                                 [0.000000363, 0.000001996, 0.000009253, 0.00000889,  0.203705679, 0.216356046, 0], 
                                 [0, 0, 0.000000253, 0, 0.001995558, 0.110723501, 0.089154896]]],
            "XSChi":  [0, 0, 0, 0, 0, 0, 0]
          }
        ]  
      }  
    }
  • Geometry in a two-dimensional TRIGA Reactor

Image 15

  • Flux in a one-dimensional TRIGA Reactor

Image 16

The infinite cell in OpenMC is represented by hexagonal cell with reflective boundaries. The infinite multiplication factor values ​​obtained in OpenNTP and OpenMC are shown in Table below.

Calculate infinite multiplication factor Eq.

    +----------------------+------------------+
    | Surface              |        kinf      |
    +======================+==================+
    | OpenNTP              |    1.403180      |
    |                      |                  |
    +----------------------+------------------+
    |                      |                  |
    | OpenMC               |    1.40359(8pcm) |
    +----------------------+------------------+

2.5. Sphere

Setting up input file for the Uc-H2O(2)-1-0-SL benchmark taken from [Sood, A., et al.,2003]. <https://doi.org/10.1016/S0149-1970(02)00098-7>_, which is a sphere geometry in one energy groups with isotropic scattering source.

    { 
      "data": { 
        "parameter": { 
          "id": 100,
          "Total number of energy groups": 1,
          "Total number of materials": 2,
          "Total number of pin cells": 2,
          "Total number of assemblies": 1,
          "Core": [1],
          "Total number of active pin cells": 1,
          "Number of angular discretizations": 2,
          "The l-order Legendre polynomial": 0,
          "Maximum number of iterations": 200,
          "Criterion of Keff convergence": 1.0E-6
        }, 
        "Assemblies": [
          { 
            "id": 1, 
            "name": "Assembly 1",
            "assembly": [1,2]
          }
    ], 
        "PinCells": [
          { 
            "id": 1, 
            "name": "Pin Cell 1",
            "ray": [6.12745],
            "mat_fill": [1],
            "fine_mesh": [1000]
          },
          { 
            "id": 2, 
            "name": "Pin Cell 2",
            "ray": [12.2549],
            "mat_fill": [2],
            "fine_mesh": [1000]
          }
    ], 
        "materials": [
          {
            "id": 1,
            "name": "Uc",
            "XSTotal": [0.3264],
            "XSNuFission": [0.176733066],
            "XSScatter Matrix":[[[0.248064]]],
            "XSChi":  [1]
          },
          { 
            "id": 2, 
            "name": "H2O",
            "XSTotal": [0.3264],
            "XSNuFission": [0.0],
            "XSScatter Matrix":[[[0.29376]]],
            "XSChi":  [0]
          }
        ]
      }
    }
  • Geometry in a one-dimensional sphere

Image 17

  • Flux in a one-dimensional sphere

Image 18

Project Description

Project Presentation

Installation Instruction

Documentation

Video Demo

Dependencies:

  • python (>=3.8.2)
  • numpy (>=1.19.1)
  • matplotlib (>=3.3.1)

Authors

  • Mohamed LAHDOUR
  • Tarek El Bardouni

License

This code is distributed under the GNU General Public License, see the LICENSE file.

license.

About

In this project we develop an OpenNTP package to solve the multi-group neutron transport equation.

Resources

License

Stars

Watchers

Forks

Packages

No packages published