Repository navigation
Expand file tree
/
Copy pathSecondaryParticleTypeBlock.python.cpp
More file actions
122 lines (101 loc) · 2.93 KB
/
Copy pathSecondaryParticleTypeBlock.python.cpp
File metadata and controls
122 lines (101 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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
// system includes
#include <pybind11/pybind11.h>
#include <pybind11/stl.h>
// local includes
#include "ACEtk/continuous/SecondaryParticleTypeBlock.hpp"
#include "tools/views/views-python.hpp"
#include "definitions.hpp"
// namespace aliases
namespace python = pybind11;
namespace continuous {
void wrapSecondaryParticleTypeBlock( python::module& module, python::module& ) {
// type aliases
using Block = njoy::ACEtk::continuous::SecondaryParticleTypeBlock;
// wrap views created by this block
// create the block
python::class_< Block > block(
module,
"SecondaryParticleTypeBlock",
"The continuous energy PTYPE block with the secondary particle types\n\n"
"The SecondaryParticleTypeBlock class contains the secondary particle types\n"
"for which data is available (excluding the incident particle type).\n"
"The number of available particle types is stored in NXS(7)."
);
// wrap the block
block
.def(
python::init< std::vector< unsigned int > >(),
python::arg( "types" ),
"Initialise the block\n\n"
"Arguments:\n"
" self the block\n"
" types the particle types"
)
.def_property_readonly(
"NTYPE",
&Block::NTYPE,
"The number of secondary particle types (excluding the projectile)"
)
.def_property_readonly(
"number_additional_secondary_particle_types",
&Block::numberAdditionalSecondaryParticleTypes,
"The number of secondary particle types (excluding the projectile)"
)
.def(
"IP",
&Block::IP,
python::arg( "index" ),
"The particle type for a secondary particle index\n\n"
"Arguments:\n"
" self the block\n"
" index the index (one-based)"
)
.def(
"particle_type",
&Block::particleType,
python::arg( "index" ),
"The particle type for a secondary particle index\n\n"
"Arguments:\n"
" self the block\n"
" index the index (one-based)"
)
.def_property_readonly(
"IPs",
[] ( const Block& self ) -> UnsignedIntRange
{ return self.IPs(); },
"The particle types"
)
.def_property_readonly(
"particle_types",
[] ( const Block& self ) -> UnsignedIntRange
{ return self.particleTypes(); },
"The particle types"
)
.def(
"has_IP",
&Block::hasIP,
python::arg( "type" ),
"Return whether or not the particle type is present\n\n"
" self the block\n"
" type the particle type"
)
.def(
"has_particle_type",
&Block::hasParticleType,
python::arg( "type" ),
"Return whether or not the particle type is present\n\n"
" self the block\n"
" type the particle type"
)
.def(
"index",
&Block::index,
python::arg( "type" ),
"Return the index (one-based) of the particle type\n\n"
" self the block\n"
" type the particle type"
);
// add standard block definitions
addStandardBlockDefinitions< Block >( block );
}
} // continuous namespace