Repository navigation
Expand file tree
/
Copy pathACEtk.python.cpp
More file actions
234 lines (215 loc) · 12.7 KB
/
Copy pathACEtk.python.cpp
File metadata and controls
234 lines (215 loc) · 12.7 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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
// system includes
#include <pybind11/pybind11.h>
#include <pybind11/stl.h>
// other includes
#include "views.hpp"
// namespace aliases
namespace python = pybind11;
// declarations - generic ACE table
void wrapHeader( python::module&, python::module& );
void wrapData( python::module&, python::module& );
void wrapTable( python::module&, python::module& );
// declarations - xsdir components
void wrapXsdirEntry( python::module&, python::module& );
void wrapXsdir( python::module&, python::module& );
// declarations - enumerators
void wrapReferenceFrame( python::module&, python::module& );
void wrapAngularDistributionType( python::module&, python::module& );
void wrapEnergyDistributionType( python::module&, python::module& );
namespace block {
// declarations - ACE data components
void wrapInterpolationData( python::module&, python::module& );
void wrapTabulatedFissionMultiplicity( python::module&, python::module& );
void wrapPolynomialFissionMultiplicity( python::module&, python::module& );
void wrapCrossSectionData( python::module&, python::module& );
void wrapDosimetryCrossSectionData( python::module&, python::module& );
void wrapEquiprobableAngularBins( python::module&, python::module& );
void wrapTabulatedAngularDistribution( python::module&, python::module& );
void wrapTabulatedAngularDistributionWithProbability( python::module&, python::module& );
void wrapIsotropicAngularDistribution( python::module&, python::module& );
void wrapAngularDistributionData( python::module&, python::module& );
void wrapFullyIsotropicDistribution( python::module&, python::module& );
void wrapDistributionGivenElsewhere( python::module&, python::module& );
void wrapEquiprobableOutgoingEnergyBins( python::module&, python::module& );
void wrapEquiprobableOutgoingEnergyBinData( python::module&, python::module& );
void wrapLevelScatteringDistribution( python::module&, python::module& );
void wrapDiscretePhotonDistribution( python::module&, python::module& );
void wrapTabulatedEnergyDistribution( python::module&, python::module& );
void wrapOutgoingEnergyDistributionData( python::module&, python::module& );
void wrapKalbachMannDistributionData( python::module&, python::module& );
void wrapGeneralEvaporationSpectrum( python::module&, python::module& );
void wrapSimpleMaxwellianFissionSpectrum( python::module&, python::module& );
void wrapEvaporationSpectrum( python::module&, python::module& );
void wrapParameterData( python::module&, python::module& );
void wrapEnergyDependentWattSpectrum( python::module&, python::module& );
void wrapTabulatedKalbachMannDistribution( python::module&, python::module& );
void wrapNBodyPhaseSpaceDistribution( python::module&, python::module& );
void wrapTwoBodyTransferDistribution( python::module&, python::module& );
void wrapTabulatedEnergyAngleDistribution( python::module&, python::module& );
void wrapEnergyAngleDistributionData( python::module&, python::module& );
void wrapTabulatedAngleEnergyDistribution( python::module&, python::module& );
void wrapAngleEnergyDistributionData( python::module&, python::module& );
void wrapDistributionProbability( python::module&, python::module& );
void wrapMultiDistributionData( python::module&, python::module& );
void wrapTabulatedMultiplicity( python::module&, python::module& );
void wrapTabulatedSecondaryParticleMultiplicity( python::module&, python::module& );
void wrapPhotonProductionCrossSectionData( python::module&, python::module& );
void wrapDelayedNeutronPrecursorData( python::module&, python::module& );
void wrapProbabilityTable( python::module&, python::module& );
void wrapThermalScatteringDiscreteCosines( python::module&, python::module& );
void wrapThermalScatteringDiscreteCosinesWithProbability( python::module&, python::module& );
// declarations - ACE table blocks
void wrapPrincipalCrossSectionBlock( python::module&, python::module& );
void wrapFissionMultiplicityBlock( python::module&, python::module& );
void wrapReactionNumberBlock( python::module&, python::module& );
void wrapReactionQValueBlock( python::module&, python::module& );
void wrapFrameAndMultiplicityBlock( python::module&, python::module& );
void wrapCrossSectionBlock( python::module&, python::module& );
void wrapDosimetryCrossSectionBlock( python::module&, python::module& );
void wrapPhotonProductionCrossSectionBlock( python::module&, python::module& );
void wrapAngularDistributionBlock( python::module&, python::module& );
void wrapSecondaryParticleAngularDistributionBlock( python::module&, python::module& );
void wrapEnergyDistributionBlock( python::module&, python::module& );
void wrapSecondaryParticleEnergyDistributionBlock( python::module&, python::module& );
void wrapPhotonProductionBlock( python::module&, python::module& );
void wrapMultiplicityReactionNumberBlock( python::module&, python::module& );
void wrapDelayedNeutronPrecursorBlock( python::module&, python::module& );
void wrapSecondaryParticleTypeBlock( python::module&, python::module& );
void wrapSecondaryParticleInformationBlock( python::module&, python::module& );
void wrapSecondaryParticleLocatorBlock( python::module&, python::module& );
void wrapSecondaryParticleProductionBlock( python::module&, python::module& );
void wrapSecondaryParticleProductionCrossSectionBlock( python::module&, python::module& );
void wrapProbabilityTableBlock( python::module&, python::module& );
void wrapThermalScatteringCrossSectionBlock( python::module&, python::module& );
void wrapThermalScatteringElasticAngularDistributionBlock( python::module&, python::module& );
void wrapThermalScatteringInelasticAngularDistributionBlock( python::module&, python::module& );
void wrapPhotoAtomicPrincipalCrossSectionBlock( python::module&, python::module& );
void wrapIncoherentScatteringFunctionBlock( python::module&, python::module& );
void wrapCoherentFormFactorBlock( python::module&, python::module& );
void wrapPhotoAtomicFluorescenceDataBlock( python::module&, python::module& );
void wrapPhotoAtomicHeatingNumbersBlock( python::module&, python::module& );
void wrapPhotoAtomicElectronShellBlock( python::module&, python::module& );
void wrapPhotoAtomicComptonProfile( python::module&, python::module& );
void wrapPhotoAtomicComptonProfileBlock( python::module&, python::module& );
}
// declarations - ACE table types
void wrapContinuousEnergyTable( python::module&, python::module& );
void wrapDosimetryTable( python::module&, python::module& );
void wrapThermalScatteringTable( python::module&, python::module& );
void wrapPhotoAtomicTable( python::module&, python::module& );
void wrapPhotoNuclearTable( python::module&, python::module& );
/**
* @brief ACEtk python bindings
*
* The name given here (ACEtk) must be the same as the name
* set on the PROPERTIES OUTPUT_NAME in the CMakeLists.txt file.
*/
PYBIND11_MODULE( ACEtk, module ) {
// create the views submodule
python::module viewmodule = module.def_submodule(
"sequence",
"sequence - ACE sequences (internal use only)"
);
// wrap some basic recurring views
// none of these are supposed to be created directly by the user
wrapBasicRandomAccessAnyViewOf< double >(
viewmodule,
"any_view< double, random_access >" );
wrapBasicRandomAccessAnyViewOf< unsigned int >(
viewmodule,
"any_view< unsigned int, random_access >" );
wrapBasicRandomAccessAnyViewOf< long >(
viewmodule,
"any_view< long, random_access >" );
// wrap enumerators
wrapReferenceFrame( module, viewmodule );
wrapAngularDistributionType( module, viewmodule );
wrapEnergyDistributionType( module, viewmodule );
// wrap generic ACE table components
wrapHeader( module, viewmodule );
wrapData( module, viewmodule );
wrapTable( module, viewmodule );
// wrap xsdir components
wrapXsdirEntry( module, viewmodule );
wrapXsdir( module, viewmodule );
// wrap data components
block::wrapInterpolationData( module, viewmodule );
block::wrapTabulatedFissionMultiplicity( module, viewmodule );
block::wrapPolynomialFissionMultiplicity( module, viewmodule );
block::wrapCrossSectionData( module, viewmodule );
block::wrapDosimetryCrossSectionData( module, viewmodule );
block::wrapEquiprobableAngularBins( module, viewmodule );
block::wrapTabulatedAngularDistribution( module, viewmodule );
block::wrapTabulatedAngularDistributionWithProbability( module, viewmodule );
block::wrapIsotropicAngularDistribution( module, viewmodule );
block::wrapAngularDistributionData( module, viewmodule );
block::wrapFullyIsotropicDistribution( module, viewmodule );
block::wrapDistributionGivenElsewhere( module, viewmodule );
block::wrapLevelScatteringDistribution( module, viewmodule );
block::wrapEquiprobableOutgoingEnergyBins( module, viewmodule );
block::wrapEquiprobableOutgoingEnergyBinData( module, viewmodule );
block::wrapDiscretePhotonDistribution( module, viewmodule );
block::wrapTabulatedEnergyDistribution( module, viewmodule );
block::wrapOutgoingEnergyDistributionData( module, viewmodule );
block::wrapTabulatedKalbachMannDistribution( module, viewmodule );
block::wrapGeneralEvaporationSpectrum( module, viewmodule );
block::wrapSimpleMaxwellianFissionSpectrum( module, viewmodule );
block::wrapEvaporationSpectrum( module, viewmodule );
block::wrapParameterData( module, viewmodule );
block::wrapEnergyDependentWattSpectrum( module, viewmodule );
block::wrapKalbachMannDistributionData( module, viewmodule );
block::wrapNBodyPhaseSpaceDistribution( module, viewmodule );
block::wrapTwoBodyTransferDistribution( module, viewmodule );
block::wrapTabulatedEnergyAngleDistribution( module, viewmodule );
block::wrapEnergyAngleDistributionData( module, viewmodule );
block::wrapTabulatedAngleEnergyDistribution( module, viewmodule );
block::wrapAngleEnergyDistributionData( module, viewmodule );
block::wrapDistributionProbability( module, viewmodule );
block::wrapMultiDistributionData( module, viewmodule );
block::wrapTabulatedSecondaryParticleMultiplicity( module, viewmodule );
block::wrapTabulatedMultiplicity( module, viewmodule );
block::wrapPhotonProductionCrossSectionData( module, viewmodule );
block::wrapDelayedNeutronPrecursorData( module, viewmodule );
block::wrapProbabilityTable( module, viewmodule );
block::wrapThermalScatteringDiscreteCosines( module, viewmodule );
block::wrapThermalScatteringDiscreteCosinesWithProbability( module, viewmodule );
block::wrapPhotoAtomicComptonProfile( module, viewmodule );
// wrap ACE table blocks
block::wrapPrincipalCrossSectionBlock( module, viewmodule );
block::wrapFissionMultiplicityBlock( module, viewmodule );
block::wrapReactionNumberBlock( module, viewmodule );
block::wrapReactionQValueBlock( module, viewmodule );
block::wrapFrameAndMultiplicityBlock( module, viewmodule );
block::wrapCrossSectionBlock( module, viewmodule );
block::wrapDosimetryCrossSectionBlock( module, viewmodule );
block::wrapPhotonProductionCrossSectionBlock( module, viewmodule );
block::wrapAngularDistributionBlock( module, viewmodule );
block::wrapSecondaryParticleAngularDistributionBlock( module, viewmodule );
block::wrapEnergyDistributionBlock( module, viewmodule );
block::wrapPhotonProductionBlock( module, viewmodule );
block::wrapMultiplicityReactionNumberBlock( module, viewmodule );
block::wrapDelayedNeutronPrecursorBlock( module, viewmodule );
block::wrapSecondaryParticleEnergyDistributionBlock( module, viewmodule );
block::wrapSecondaryParticleTypeBlock( module, viewmodule );
block::wrapSecondaryParticleInformationBlock( module, viewmodule );
block::wrapSecondaryParticleLocatorBlock( module, viewmodule );
block::wrapSecondaryParticleProductionBlock( module, viewmodule );
block::wrapSecondaryParticleProductionCrossSectionBlock( module, viewmodule );
block::wrapProbabilityTableBlock( module, viewmodule );
block::wrapThermalScatteringCrossSectionBlock( module, viewmodule );
block::wrapThermalScatteringElasticAngularDistributionBlock( module, viewmodule );
block::wrapThermalScatteringInelasticAngularDistributionBlock( module, viewmodule );
block::wrapPhotoAtomicPrincipalCrossSectionBlock( module, viewmodule );
block::wrapIncoherentScatteringFunctionBlock( module, viewmodule );
block::wrapCoherentFormFactorBlock( module, viewmodule );
block::wrapPhotoAtomicFluorescenceDataBlock( module, viewmodule );
block::wrapPhotoAtomicHeatingNumbersBlock( module, viewmodule );
block::wrapPhotoAtomicElectronShellBlock( module, viewmodule );
block::wrapPhotoAtomicComptonProfileBlock( module, viewmodule );
// wrap ACE table types
wrapContinuousEnergyTable( module, viewmodule );
wrapDosimetryTable( module, viewmodule );
wrapThermalScatteringTable( module, viewmodule );
wrapPhotoAtomicTable( module, viewmodule );
wrapPhotoNuclearTable( module, viewmodule );
}