Repository navigation
Expand file tree
/
Copy pathSecondaryParticleProductionCrossSectionBlock.python.cpp
More file actions
102 lines (84 loc) · 2.93 KB
/
Copy pathSecondaryParticleProductionCrossSectionBlock.python.cpp
File metadata and controls
102 lines (84 loc) · 2.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
// system includes
#include <pybind11/pybind11.h>
#include <pybind11/stl.h>
// local includes
#include "ACEtk/continuous/SecondaryParticleProductionCrossSectionBlock.hpp"
#include "definitions.hpp"
// namespace aliases
namespace python = pybind11;
namespace continuous {
void wrapSecondaryParticleProductionCrossSectionBlock( python::module& module, python::module& ) {
// type aliases
using Block = njoy::ACEtk::continuous::SecondaryParticleProductionCrossSectionBlock;
using TabulatedSecondaryParticleMultiplicity = njoy::ACEtk::continuous::TabulatedSecondaryParticleMultiplicity;
// wrap views created by this block
// create the block
python::class_< Block > block(
module,
"SecondaryParticleProductionCrossSectionBlock",
"The continuous energy LSIGH and SIGH block with the secondary particle\n"
"production cross section data (multiplicity data only)\n\n"
"The SecondaryParticleProductionCrossSectionBlock class contains NTRO.NP sets\n"
"of secondary particle production data, one for each reaction number on the\n"
"MTRH block. The order of these cross section data sets is the same as the\n"
"order of the reaction numbers in the MTRH block."
);
// wrap the block
block
.def(
python::init< std::vector< TabulatedSecondaryParticleMultiplicity > >(),
python::arg( "xs" ),
"Initialise the block\n\n"
"Arguments:\n"
" self the block\n"
" xs the cross section data"
)
.def_property_readonly(
"NP",
&Block::NP,
"The number of secondary particle production reactions"
)
.def_property_readonly(
"number_secondary_particle_production_reactions",
&Block::numberSecondaryParticleProductionReactions,
"The number of secondary particle production reactions"
)
.def(
"LSIG",
&Block::LSIG,
python::arg( "index" ),
"Return the relative cross section locator for a reaction index\n\n"
"When the index is out of range an out of range exception is thrown\n"
"(debug mode only).\n\n"
" self the block\n"
" index the index (one-based)"
)
.def(
"cross_section_locator",
&Block::crossSectionLocator,
python::arg( "index" ),
"Return the relative cross section locator for a reaction index\n\n"
"When the index is out of range an out of range exception is thrown\n"
"(debug mode only).\n\n"
" self the block\n"
" index the index (one-based)"
)
.def_property_readonly(
"data",
&Block::data,
"The cross section data"
)
.def(
"cross_section_data",
&Block::crossSectionData,
python::arg( "index" ),
"Return the cross section data for a reaction index\n\n"
"When the index is out of range an out of range exception is thrown\n"
"(debug mode only).\n\n"
" self the block\n"
" index the index (one-based)"
);
// add standard block definitions
addStandardBlockDefinitions< Block >( block );
}
} // continuous namespace