Skip to content

Commit de188d4

Browse files
committed
Merge branch 'feature/rm-backgrounds-part2' into 'develop'
Feature/rm backgrounds part2 See merge request njoy/dryad!135
2 parents 1579ad2 + cab1d19 commit de188d4

35 files changed

+1617
-8
lines changed

cmake/unit_testing.cmake

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@ add_cpp_test( dryad.resonances.CoulombShiftFactor
6868
add_cpp_test( dryad.resonances.CoulombPhaseShift dryad/resonances/CoulombPhaseShift.test.cpp )
6969
add_cpp_test( dryad.resonances.CoulombPhaseShiftDifference dryad/resonances/CoulombPhaseShiftDifference.test.cpp )
7070
add_cpp_test( dryad.resonances.TabulatedWaveFunction dryad/resonances/TabulatedWaveFunction.test.cpp )
71+
add_cpp_test( dryad.resonances.FrohnerBackground dryad/resonances/FrohnerBackground.test.cpp )
72+
add_cpp_test( dryad.resonances.SammyBackground dryad/resonances/SammyBackground.test.cpp )
7173
add_cpp_test( dryad.resonances.TabulatedBackground dryad/resonances/TabulatedBackground.test.cpp )
7274
add_cpp_test( dryad.resonances.Channel dryad/resonances/Channel.test.cpp )
7375
add_cpp_test( dryad.resonances.ResonanceTable dryad/resonances/ResonanceTable.test.cpp )
@@ -183,6 +185,9 @@ add_cpp_test( dryad.format.endf.resonances.lrf7.createFormalism
183185
add_cpp_test( dryad.format.endf.resonances.lrf7.createKinematics dryad/format/endf/resonances/lrf7/createKinematics.test.cpp )
184186
add_cpp_test( dryad.format.endf.resonances.lrf7.createReactionIdentifiers dryad/format/endf/resonances/lrf7/createReactionIdentifiers.test.cpp )
185187
add_cpp_test( dryad.format.endf.resonances.lrf7.createParticlePairs dryad/format/endf/resonances/lrf7/createParticlePairs.test.cpp )
188+
add_cpp_test( dryad.format.endf.resonances.lrf7.createFrohnerBackground dryad/format/endf/resonances/lrf7/createFrohnerBackground.test.cpp )
189+
add_cpp_test( dryad.format.endf.resonances.lrf7.createSammyBackground dryad/format/endf/resonances/lrf7/createSammyBackground.test.cpp )
190+
add_cpp_test( dryad.format.endf.resonances.lrf7.createTabulatedBackground dryad/format/endf/resonances/lrf7/createTabulatedBackground.test.cpp )
186191
add_cpp_test( dryad.format.endf.resonances.lrf7.createChannels dryad/format/endf/resonances/lrf7/createChannels.test.cpp )
187192
add_cpp_test( dryad.format.endf.resonances.lrf7.createSpinGroups dryad/format/endf/resonances/lrf7/createSpinGroups.test.cpp )
188193
add_cpp_test( dryad.format.endf.resonances.lrf7.createCompoundSystem dryad/format/endf/resonances/lrf7/createCompoundSystem.test.cpp )
@@ -237,6 +242,8 @@ add_cpp_test( dryad.format.gnds.convertEnergy
237242
add_cpp_test( dryad.format.gnds.convertEnergies dryad/format/gnds/convertEnergies.test.cpp )
238243
add_cpp_test( dryad.format.gnds.convertCrossSection dryad/format/gnds/convertCrossSection.test.cpp )
239244
add_cpp_test( dryad.format.gnds.convertCrossSections dryad/format/gnds/convertCrossSections.test.cpp )
245+
add_cpp_test( dryad.format.gnds.convertInverseEnergy dryad/format/gnds/convertInverseEnergy.test.cpp )
246+
add_cpp_test( dryad.format.gnds.convertInverseEnergySquared dryad/format/gnds/convertInverseEnergySquared.test.cpp )
240247
add_cpp_test( dryad.format.gnds.convertInverseEnergies dryad/format/gnds/convertInverseEnergies.test.cpp )
241248
add_cpp_test( dryad.format.gnds.convertInverseLengths dryad/format/gnds/convertInverseLengths.test.cpp )
242249
add_cpp_test( dryad.format.gnds.convertVarianceScalingFactors dryad/format/gnds/convertVarianceScalingFactors.test.cpp )
@@ -250,6 +257,7 @@ add_cpp_test( dryad.format.gnds.createReferenceFrame
250257
add_cpp_test( dryad.format.gnds.createParticleIdentifier dryad/format/gnds/createParticleIdentifier.test.cpp )
251258
add_cpp_test( dryad.format.gnds.readShape dryad/format/gnds/readShape.test.cpp )
252259
add_cpp_test( dryad.format.gnds.resolveLink dryad/format/gnds/resolveLink.test.cpp )
260+
add_cpp_test( dryad.format.gnds.readDouble dryad/format/gnds/readDouble.test.cpp )
253261
add_cpp_test( dryad.format.gnds.readAxis dryad/format/gnds/readAxis.test.cpp )
254262
add_cpp_test( dryad.format.gnds.readGrid dryad/format/gnds/readGrid.test.cpp )
255263
add_cpp_test( dryad.format.gnds.readAxes dryad/format/gnds/readAxes.test.cpp )
@@ -261,6 +269,7 @@ add_cpp_test( dryad.format.gnds.readXYs1d
261269
add_cpp_test( dryad.format.gnds.readArray dryad/format/gnds/readArray.test.cpp )
262270
add_cpp_test( dryad.format.gnds.resonances.createTabulatedRadius dryad/format/gnds/resonances/createTabulatedRadius.test.cpp )
263271
add_cpp_test( dryad.format.gnds.resonances.createRadius dryad/format/gnds/resonances/createRadius.test.cpp )
272+
add_cpp_test( dryad.format.gnds.resonances.createBackground dryad/format/gnds/resonances/createBackground.test.cpp )
264273
add_cpp_test( dryad.format.gnds.thermal.createTabulatedDebyeWallerIntegral dryad/format/gnds/thermal/createTabulatedDebyeWallerIntegral.test.cpp )
265274
add_cpp_test( dryad.format.gnds.thermal.createTabulatedEffectiveTemperature dryad/format/gnds/thermal/createTabulatedEffectiveTemperature.test.cpp )
266275
add_cpp_test( dryad.format.gnds.thermal.createIncoherentElasticScattering dryad/format/gnds/thermal/createIncoherentElasticScattering.test.cpp )

cmake/unit_testing_python.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ add_python_test( dryad.resonances.CoulombShiftFactor dryad/res
6060
add_python_test( dryad.resonances.CoulombPhaseShift dryad/resonances/Test_CoulombPhaseShift.py )
6161
add_python_test( dryad.resonances.CoulombPhaseShiftDifference dryad/resonances/Test_CoulombPhaseShiftDifference.py )
6262
add_python_test( dryad.resonances.TabulatedWaveFunction dryad/resonances/Test_TabulatedWaveFunction.py )
63+
add_python_test( dryad.resonances.FrohnerBackground dryad/resonances/Test_FrohnerBackground.py )
64+
add_python_test( dryad.resonances.SammyBackground dryad/resonances/Test_SammyBackground.py )
6365
add_python_test( dryad.resonances.TabulatedBackground dryad/resonances/Test_TabulatedBackground.py )
6466
add_python_test( dryad.resonances.Channel dryad/resonances/Test_Channel.py )
6567
add_python_test( dryad.resonances.ResonanceTable dryad/resonances/Test_ResonanceTable.py )

python/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ if(njoy.python)
3737
${CMAKE_CURRENT_SOURCE_DIR}/src/dryad/resonances/CoulombPhaseShift.python.cpp
3838
${CMAKE_CURRENT_SOURCE_DIR}/src/dryad/resonances/CoulombPhaseShiftDifference.python.cpp
3939
${CMAKE_CURRENT_SOURCE_DIR}/src/dryad/resonances/TabulatedWaveFunction.python.cpp
40+
${CMAKE_CURRENT_SOURCE_DIR}/src/dryad/resonances/FrohnerBackground.python.cpp
41+
${CMAKE_CURRENT_SOURCE_DIR}/src/dryad/resonances/SammyBackground.python.cpp
4042
${CMAKE_CURRENT_SOURCE_DIR}/src/dryad/resonances/TabulatedBackground.python.cpp
4143
${CMAKE_CURRENT_SOURCE_DIR}/src/dryad/resonances/Channel.python.cpp
4244
${CMAKE_CURRENT_SOURCE_DIR}/src/dryad/resonances/ResonanceTable.python.cpp

python/src/dryad/resonances.python.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ namespace resonances {
2929
void wrapCoulombPhaseShift( python::module& );
3030
void wrapCoulombPhaseShiftDifference( python::module& );
3131
void wrapTabulatedWaveFunction( python::module& );
32+
void wrapFrohnerBackground( python::module& );
33+
void wrapSammyBackground( python::module& );
3234
void wrapTabulatedBackground( python::module& );
3335
void wrapChannel( python::module& );
3436
void wrapResonanceTable( python::module& );
@@ -66,6 +68,8 @@ void wrapResonances( python::module& module ) {
6668
resonances::wrapCoulombPhaseShift( submodule );
6769
resonances::wrapCoulombPhaseShiftDifference( submodule );
6870
resonances::wrapTabulatedWaveFunction( submodule );
71+
resonances::wrapFrohnerBackground( submodule );
72+
resonances::wrapSammyBackground( submodule );
6973
resonances::wrapTabulatedBackground( submodule );
7074
resonances::wrapChannel( submodule );
7175
resonances::wrapResonanceTable( submodule );
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
// system includes
2+
#include <pybind11/pybind11.h>
3+
#include <pybind11/stl.h>
4+
5+
// local includes
6+
#include "dryad/definitions.hpp"
7+
#include "njoy/dryad/resonances/FrohnerBackground.hpp"
8+
9+
// namespace aliases
10+
namespace python = pybind11;
11+
12+
namespace dryad {
13+
namespace resonances {
14+
15+
void wrapFrohnerBackground( python::module& module ) {
16+
17+
// type aliases
18+
using Component = njoy::dryad::resonances::FrohnerBackground;
19+
20+
// wrap views created by this component
21+
22+
// create the component
23+
python::class_< Component > component(
24+
25+
module,
26+
"FrohnerBackground",
27+
"A channel background using the Frohner parametrisation"
28+
);
29+
30+
// wrap the component
31+
component
32+
.def(
33+
34+
python::init< double, double, double,
35+
double, double >(),
36+
python::arg( "distant_level_parameter" ),
37+
python::arg( "pole_strength" ),
38+
python::arg( "average_radiation_width" ),
39+
python::arg( "lower_singularity" ),
40+
python::arg( "upper_singularity" ),
41+
"Initialise the background function\n\n"
42+
"Parameters\n"
43+
"----------\n"
44+
" distant_level_parameter : float\n"
45+
" the distant level parameter\n"
46+
" pole_strength : list of float\n"
47+
" the pole strength\n"
48+
" average_radiation_width : float\n"
49+
" the average radiation width\n"
50+
" lower_singularity : float\n"
51+
" the lower logarithmic singularity values\n"
52+
" upper_singularity : float\n"
53+
" the upper logarithmic singularity values\n"
54+
)
55+
.def_property_readonly(
56+
57+
"distant_level_parameter",
58+
&Component::distantLevelParameter,
59+
"The distant level parameter"
60+
)
61+
.def_property_readonly(
62+
63+
"pole_strength",
64+
&Component::poleStrength,
65+
"The pole strength"
66+
)
67+
.def_property_readonly(
68+
69+
"average_radiation_width",
70+
&Component::averageRadiationWidth,
71+
"The average radiation width"
72+
)
73+
.def_property_readonly(
74+
75+
"lower_singularity",
76+
&Component::lowerSingularity,
77+
"The logarithmic singularity below the energy range"
78+
)
79+
.def_property_readonly(
80+
81+
"upper_singularity",
82+
&Component::upperSingularity,
83+
"The logarithmic singularity above the energy range"
84+
)
85+
.def(
86+
87+
"__call__",
88+
[] ( const Component& self, double energy ) -> decltype(auto)
89+
{ return self( energy ); },
90+
python::arg( "energy" ),
91+
"Evaluate the background function for a given energy value\n\n"
92+
"Parameters\n"
93+
"----------\n"
94+
" energy : float\n"
95+
" the energy value"
96+
);
97+
98+
// add standard equality comparison definitions
99+
addStandardEqualityComparisonDefinitions< Component >( component );
100+
101+
// add standard copy definitions
102+
addStandardCopyDefinitions< Component >( component );
103+
}
104+
105+
} // resonances namespace
106+
} // dryad namespace

python/src/dryad/resonances/HardSpherePenetrability.python.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
#include "dryad/definitions.hpp"
77
#include "njoy/dryad/resonances/HardSpherePenetrability.hpp"
88

9-
#include "scion/math/horner.hpp"
10-
119
// namespace aliases
1210
namespace python = pybind11;
1311

python/src/dryad/resonances/HardSpherePhaseShift.python.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
#include "dryad/definitions.hpp"
77
#include "njoy/dryad/resonances/HardSpherePhaseShift.hpp"
88

9-
#include "scion/math/horner.hpp"
10-
119
// namespace aliases
1210
namespace python = pybind11;
1311

python/src/dryad/resonances/HardSphereShiftFactor.python.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
#include "dryad/definitions.hpp"
77
#include "njoy/dryad/resonances/HardSphereShiftFactor.hpp"
88

9-
#include "scion/math/horner.hpp"
10-
119
// namespace aliases
1210
namespace python = pybind11;
1311

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
// system includes
2+
#include <pybind11/pybind11.h>
3+
#include <pybind11/stl.h>
4+
5+
// local includes
6+
#include "dryad/definitions.hpp"
7+
#include "njoy/dryad/resonances/SammyBackground.hpp"
8+
9+
// namespace aliases
10+
namespace python = pybind11;
11+
12+
namespace dryad {
13+
namespace resonances {
14+
15+
void wrapSammyBackground( python::module& module ) {
16+
17+
// type aliases
18+
using Component = njoy::dryad::resonances::SammyBackground;
19+
20+
// wrap views created by this component
21+
22+
// create the component
23+
python::class_< Component > component(
24+
25+
module,
26+
"SammyBackground",
27+
"A channel background using the SAMMY parametrisation\n\n"
28+
"The SAMMY parametrisation of a channel background is a function\n"
29+
"of energy consisting of a quadratic polynomial and a logarithmic\n"
30+
"term. It is characterised by 7 parameters:\n"
31+
" - 3 coefficients of the polymonial term (R0, R1 and R2)\n"
32+
" - 2 constants for the logarithmic term (S0 and S1)\n"
33+
" - 2 logarithmic singularity values (Ed and Eu, given in eV)\n"
34+
);
35+
36+
// wrap the component
37+
component
38+
.def(
39+
40+
python::init< std::array< double, 3 >,
41+
std::array< double, 2 >,
42+
double, double >(),
43+
python::arg( "polynomial_coefficients" ),
44+
python::arg( "logarithmic_coefficients" ),
45+
python::arg( "lower_singularity" ),
46+
python::arg( "upper_singularity" ),
47+
"Initialise the background function\n\n"
48+
"Parameters\n"
49+
"----------\n"
50+
" polynomial_coefficients : list of float\n"
51+
" the coefficients of the polymonial term (order 2)\n"
52+
" logarithmic_coefficients : list of float\n"
53+
" the coefficients of the logarithmic term (order 1)\n"
54+
" lower_singularity : float\n"
55+
" the lower logarithmic singularity values\n"
56+
" upper_singularity : float\n"
57+
" the upper logarithmic singularity values\n"
58+
)
59+
.def_property_readonly(
60+
61+
"polynomial_coefficients",
62+
&Component::polynomialCoefficients,
63+
"The coefficients of the polynomial term"
64+
)
65+
.def_property_readonly(
66+
67+
"logarithmic_coefficients",
68+
&Component::logarithmicCoefficients,
69+
"The coefficients of the logarithmic term"
70+
)
71+
.def_property_readonly(
72+
73+
"lower_singularity",
74+
&Component::lowerSingularity,
75+
"The logarithmic singularity below the energy range"
76+
)
77+
.def_property_readonly(
78+
79+
"upper_singularity",
80+
&Component::upperSingularity,
81+
"The logarithmic singularity above the energy range"
82+
)
83+
.def(
84+
85+
"__call__",
86+
[] ( const Component& self, double energy ) -> decltype(auto)
87+
{ return self( energy ); },
88+
python::arg( "energy" ),
89+
"Evaluate the background function for a given energy value\n\n"
90+
"Parameters\n"
91+
"----------\n"
92+
" energy : float\n"
93+
" the energy value"
94+
);
95+
96+
// add standard equality comparison definitions
97+
addStandardEqualityComparisonDefinitions< Component >( component );
98+
99+
// add standard copy definitions
100+
addStandardCopyDefinitions< Component >( component );
101+
}
102+
103+
} // resonances namespace
104+
} // dryad namespace

0 commit comments

Comments
 (0)