10#ifndef MCGIDI_functions_hpp_included
11#define MCGIDI_functions_hpp_included 1
42 double m_outerDomainValue;
75 template <
typename RNG>
92 Function1d( a_domainMin, a_domainMax, a_interpolation, a_outerDomainValue ) { }
108 Function1d_d1( a_domainMin, a_domainMax, a_interpolation, a_outerDomainValue ) { }
225 int m_initialStateIndex;
254 template <
typename RNG>
363 template <
typename RNG>
385 template <
typename RNG>
410 template <
typename RNG>
431 template <
typename RNG>
433 template <
typename RNG>
453 template <
typename RNG>
455 template <
typename RNG>
475 template <
typename RNG>
477 template <
typename RNG>
498 template <
typename RNG>
516 template <
typename RNG>
538 template <
typename RNG>
551 double m_primaryEnergy;
554 int m_initialStateIndex;
567 template <
typename RNG>
588 template <
typename RNG>
601 int m_numberOfProducts;
603 double m_energy_in_COMFactor;
614 template <
typename RNG>
636 template <
typename RNG>
658 template <
typename RNG>
680 template <
typename RNG>
703 template <
typename RNG>
725 template <
typename RNG>
749 template <
typename RNG>
770 template <
typename RNG>
771 LUPI_HOST_DEVICE double sample(
double a_x3,
double a_x2_1,
double a_x2_2,
double a_rngValue, RNG && a_rng )
const ;
#define MCGIDI_VIRTUAL_FUNCTION
#define MCGIDI_TRUE_VIRTUAL
LUPI_HOST_DEVICE int initialStateIndex() const
LUPI_HOST_DEVICE Branching1d()
LUPI_HOST_DEVICE double evaluate(double a_x1) const
LUPI_HOST_DEVICE ~Branching1d()
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE Constant1d()
LUPI_HOST_DEVICE double evaluate(LUPI_maybeUnused double a_x1) const
LUPI_HOST_DEVICE ~Constant1d()
LUPI_HOST_DEVICE double evaluate(double a_x1) const
LUPI_HOST_DEVICE Function1d_d1(double a_domainMin, double a_domainMax, Interpolation a_interpolation, double a_outerDomainValue=0)
LUPI_HOST_DEVICE Function1d_d1()
LUPI_HOST_DEVICE double evaluate(double a_x1) const
LUPI_HOST_DEVICE Function1d_d2(double a_domainMin, double a_domainMax, Interpolation a_interpolation, double a_outerDomainValue=0)
LUPI_HOST_DEVICE Function1d_d2()
LUPI_HOST_DEVICE String typeString() const
LUPI_HOST_DEVICE Function1dType type() const
LUPI_HOST_DEVICE MCGIDI_VIRTUAL_FUNCTION int sampleBoundingInteger(double a_x1, RNG &&a_rng) const
LUPI_HOST_DEVICE Function1d()
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE ~Function1d()
LUPI_HOST_DEVICE MCGIDI_VIRTUAL_FUNCTION double evaluate(double a_x1) const MCGIDI_TRUE_VIRTUAL
LUPI_HOST_DEVICE Function2dType type() const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE String typeString() const
LUPI_HOST_DEVICE MCGIDI_VIRTUAL_FUNCTION double evaluate(double a_x2, double a_x1) const MCGIDI_TRUE_VIRTUAL
LUPI_HOST_DEVICE Function2d()
LUPI_HOST_DEVICE ~Function2d()
LUPI_HOST_DEVICE double domainMin() const
LUPI_HOST_DEVICE FunctionBase()
LUPI_HOST_DEVICE Interpolation interpolation() const
virtual LUPI_HOST_DEVICE ~FunctionBase()=0
LUPI_HOST_DEVICE double domainMax() const
LUPI_HOST_DEVICE double outerDomainValue() const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE ~Gridded1d()
LUPI_HOST_DEVICE double evaluate(double a_x1) const
LUPI_HOST_DEVICE Gridded1d()
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE Polynomial1d()
LUPI_HOST_DEVICE Vector< double > const & coefficients() const
LUPI_HOST_DEVICE double evaluate(double a_x1) const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE ~Polynomial1d()
LUPI_HOST_DEVICE ~Regions1d()
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE void append(Function1d_d2 *a_function1d)
LUPI_HOST_DEVICE Regions1d()
LUPI_HOST_DEVICE double evaluate(double a_x1) const
LUPI_HOST_DEVICE ~TerrellFissionNeutronMultiplicityModel()
LUPI_HOST_DEVICE double evaluate(double a_energy) const
LUPI_HOST_DEVICE TerrellFissionNeutronMultiplicityModel()
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE int sampleBoundingInteger(double a_energy, RNG &&a_rng) const
LUPI_HOST_DEVICE ~XYs1d()
LUPI_HOST_DEVICE double evaluate(double a_x1) const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE ~XYs2d()
LUPI_HOST_DEVICE double evaluate(double a_x2, double a_x1) const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE double sample(LUPI_maybeUnused double a_x2, LUPI_maybeUnused double a_rngValue, LUPI_maybeUnused RNG &&a_rng) const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE ~DiscreteGamma2d()
LUPI_HOST_DEVICE double evaluate(LUPI_maybeUnused double a_x2, LUPI_maybeUnused double a_x1) const
LUPI_HOST_DEVICE DiscreteGamma2d()
LUPI_HOST_DEVICE double sample(double a_x2, double a_rngValue, RNG &&a_rng) const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE ~Evaporation2d()
LUPI_HOST_DEVICE Evaporation2d()
LUPI_HOST_DEVICE double evaluate(double a_x2, double a_x1) const
LUPI_HOST_DEVICE GeneralEvaporation2d()
LUPI_HOST_DEVICE double sample(double a_x2, double a_rngValue, RNG &&a_rng) const
LUPI_HOST_DEVICE ~GeneralEvaporation2d()
LUPI_HOST_DEVICE double evaluate(double a_x2, double a_x1) const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE double evaluate(LUPI_maybeUnused double a_x2, LUPI_maybeUnused double a_x1) const
LUPI_HOST_DEVICE ~Isotropic2d()
LUPI_HOST_DEVICE Isotropic2d()
LUPI_HOST_DEVICE double sample(LUPI_maybeUnused double a_x2, double a_rngValue, LUPI_maybeUnused RNG &&a_rng) const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE double evaluate(double a_x2, double a_x1) const
LUPI_HOST_DEVICE ~NBodyPhaseSpace2d()
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE double sample(double a_x2, double a_rngValue, RNG &&a_rng) const
LUPI_HOST_DEVICE NBodyPhaseSpace2d()
String const & finalState() const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE double sample(double a_x2, LUPI_maybeUnused double a_rngValue, LUPI_maybeUnused RNG &&a_rng) const
double primaryEnergy() const
double massFactor() const
LUPI_HOST_DEVICE double evaluate(double a_x2, double a_x1) const
int initialStateIndex() const
LUPI_HOST_DEVICE ~PrimaryGamma2d()
LUPI_HOST_DEVICE PrimaryGamma2d()
LUPI_HOST_DEVICE ~ProbabilityBase1d()
LUPI_HOST_DEVICE MCGIDI_VIRTUAL_FUNCTION double sample(double a_rngValue, RNG &&a_rng) const MCGIDI_TRUE_VIRTUAL
ProbabilityBase1dType m_type
LUPI_HOST_DEVICE MCGIDI_VIRTUAL_FUNCTION double evaluate(double a_x1) const MCGIDI_TRUE_VIRTUAL
LUPI_HOST_DEVICE String typeString() const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE ProbabilityBase1dType type() const
LUPI_HOST_DEVICE ProbabilityBase1d()
LUPI_HOST ProbabilityBase2d_d1(GIDI::Functions::FunctionForm const &a_probabilty, Vector< double > const &a_Xs)
LUPI_HOST ProbabilityBase2d_d1(GIDI::Functions::FunctionForm const &a_probabilty)
LUPI_HOST_DEVICE ProbabilityBase2d_d1()
LUPI_HOST_DEVICE double sample(double a_x2, double a_rngValue, RNG &&a_rng) const
LUPI_HOST_DEVICE double evaluate(double a_x2, double a_x1) const
LUPI_HOST_DEVICE double sample2dOf3d(double a_x2, double a_rngValue, RNG &&a_rng, double *a_x1_1, double *a_x1_2) const
LUPI_HOST_DEVICE ProbabilityBase2d_d2()
LUPI_HOST ProbabilityBase2d_d2(GIDI::Functions::FunctionForm const &a_probabilty)
LUPI_HOST_DEVICE double sample2dOf3d(double a_x2, double a_rngValue, RNG &&a_rng, double *a_x1_1, double *a_x1_2) const
LUPI_HOST ProbabilityBase2d_d2(GIDI::Functions::FunctionForm const &a_probabilty, Vector< double > const &a_Xs)
LUPI_HOST_DEVICE double sample(double a_x2, double a_rngValue, RNG &&a_rng) const
LUPI_HOST_DEVICE double evaluate(double a_x2, double a_x1) const
LUPI_HOST_DEVICE ~ProbabilityBase2d()
LUPI_HOST_DEVICE MCGIDI_VIRTUAL_FUNCTION double evaluate(double a_x2, double a_x1) const MCGIDI_TRUE_VIRTUAL
ProbabilityBase2dType m_type
LUPI_HOST_DEVICE MCGIDI_VIRTUAL_FUNCTION double sample(double a_x2, double a_rngValue, RNG &&a_rng) const MCGIDI_TRUE_VIRTUAL
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE String typeString() const
LUPI_HOST_DEVICE ProbabilityBase2dType type() const
LUPI_HOST_DEVICE ProbabilityBase2d()
LUPI_HOST_DEVICE ProbabilityBase3dType type() const
LUPI_HOST_DEVICE ProbabilityBase3d()
LUPI_HOST_DEVICE MCGIDI_VIRTUAL_FUNCTION double sample(double a_x3, double a_x2_1, double a_x2_2, double a_rngValue, RNG &&a_rng) const MCGIDI_TRUE_VIRTUAL
LUPI_HOST_DEVICE String typeString() const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
ProbabilityBase3dType m_type
LUPI_HOST_DEVICE ~ProbabilityBase3d()
LUPI_HOST_DEVICE MCGIDI_VIRTUAL_FUNCTION double evaluate(double a_x3, double a_x2, double a_x1) const MCGIDI_TRUE_VIRTUAL
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE ~ProbabilityBase()
LUPI_HOST_DEVICE ProbabilityBase()
LUPI_HOST_DEVICE Recoil2d()
LUPI_HOST_DEVICE double evaluate(double a_x2, double a_x1) const
LUPI_HOST_DEVICE double sample(double a_x2, double a_rngValue, RNG &&a_rng) const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE ~Recoil2d()
LUPI_HOST_DEVICE double evaluate(double a_x2, double a_x1) const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE Regions2d()
LUPI_HOST_DEVICE double sample(double a_x2, double a_rngValue, RNG &&a_rng) const
LUPI_HOST_DEVICE ~Regions2d()
LUPI_HOST_DEVICE double sample(double a_x2, double a_rngValue, RNG &&a_rng) const
LUPI_HOST_DEVICE double evaluate(double a_x2, double a_x1) const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE SimpleMaxwellianFission2d()
LUPI_HOST_DEVICE ~SimpleMaxwellianFission2d()
LUPI_HOST_DEVICE Watt2d()
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE ~Watt2d()
LUPI_HOST_DEVICE double sample(double a_x2, double a_rngValue, RNG &&a_rng) const
LUPI_HOST_DEVICE double evaluate(double a_x2, double a_x1) const
LUPI_HOST_DEVICE ~WeightedFunctionals2d()
LUPI_HOST_DEVICE double evaluate(double a_x2, double a_x1) const
LUPI_HOST_DEVICE double sample(double a_x2, double a_rngValue, RNG &&a_rng) const
LUPI_HOST_DEVICE WeightedFunctionals2d()
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE double sample2dOf3d(double a_x2, double a_rngValue, RNG &&a_rng, double *a_x1_1, double *a_x1_2) const
LUPI_HOST_DEVICE ~XYs2d()
LUPI_HOST_DEVICE double sample(double a_x2, double a_rngValue, RNG &&a_rng) const
LUPI_HOST_DEVICE double evaluate(double a_x2, double a_x1) const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE double evaluate(double a_x3, double a_x2, double a_x1) const
LUPI_HOST_DEVICE ~XYs3d()
LUPI_HOST_DEVICE double sample(double a_x3, double a_x2_1, double a_x2_2, double a_rngValue, RNG &&a_rng) const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE double sample(double a_rngValue, RNG &&a_rng) const
LUPI_HOST_DEVICE Xs_pdf_cdf1d()
LUPI_HOST_DEVICE ~Xs_pdf_cdf1d()
LUPI_HOST_DEVICE double evaluate(double a_x1) const
LUPI_HOST Function1d_d1 * parseFunction1d_d1(Transporting::MC const &a_settings, GIDI::Suite const &a_suite)
LUPI_HOST Function2d * parseFunction2d(Transporting::MC const &a_settings, GIDI::Suite const &a_suite)
LUPI_HOST Function1d * parseMultiplicityFunction1d(SetupInfo &a_setupInfo, Transporting::MC const &a_settings, GIDI::Suite const &a_suite)
LUPI_HOST Function1d_d2 * parseFunction1d_d2(GIDI::Functions::Function1dForm const *form1d)
LUPI_HOST ProbabilityBase2d_d2 * parseProbability2d_d2(GIDI::Functions::Function2dForm const *form2d, SetupInfo *a_setupInfo)
LUPI_HOST ProbabilityBase3d * parseProbability3d(Transporting::MC const &a_settings, GIDI::Suite const &a_suite)
LUPI_HOST ProbabilityBase2d_d1 * parseProbability2d_d1(GIDI::Functions::Function2dForm const *form2d, SetupInfo *a_setupInfo)
LUPI_HOST ProbabilityBase1d * parseProbability1d(Transporting::MC const &a_settings, GIDI::Suite const &a_suite)
LUPI_HOST ProbabilityBase2d * parseProbability2d(Transporting::MC const &a_settings, GIDI::Suite const &a_suite, SetupInfo *a_setupInfo)
Simple C++ string class, useful as replacement for std::string if this cannot be used,...
LUPI_HOST_DEVICE Function2dType Function2dClass(Functions::Function2d *funct)
LUPI_HOST_DEVICE Probabilities::ProbabilityBase2d * serializeProbability2d(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode, Probabilities::ProbabilityBase2d *a_probability2d)
LUPI_HOST_DEVICE Functions::Function2d * serializeFunction2d(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode, Functions::Function2d *a_function2d)
LUPI_HOST_DEVICE ProbabilityBase1dType ProbabilityBase1dClass(Probabilities::ProbabilityBase1d *funct)
LUPI_HOST_DEVICE Probabilities::ProbabilityBase2d_d1 * serializeProbability2d_d1(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode, Probabilities::ProbabilityBase2d_d1 *a_probability2d)
LUPI_HOST_DEVICE Function1dType Function1dClass(Functions::Function1d *funct)
LUPI_HOST_DEVICE Probabilities::ProbabilityBase3d * serializeProbability3d(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode, Probabilities::ProbabilityBase3d *a_probability3d)
LUPI_HOST_DEVICE Interpolation GIDI2MCGIDI_interpolation(ptwXY_interpolation a_interpolation)
LUPI_HOST_DEVICE Probabilities::ProbabilityBase2d_d2 * serializeProbability2d_d2(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode, Probabilities::ProbabilityBase2d_d2 *a_probability2d)
LUPI_HOST_DEVICE Functions::Function1d_d2 * serializeFunction1d_d2(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode, Functions::Function1d_d2 *a_function1d)
LUPI_HOST_DEVICE Functions::Function1d * serializeFunction1d(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode, Functions::Function1d *a_function1d)
@ simpleMaxwellianFission
LUPI_HOST_DEVICE ProbabilityBase3dType ProbabilityBase3dClass(Probabilities::ProbabilityBase3d *funct)
LUPI_HOST_DEVICE ProbabilityBase2dType ProbabilityBase2dClass(Probabilities::ProbabilityBase2d *funct)
@ TerrellFissionNeutronMultiplicityModel
LUPI_HOST_DEVICE Functions::Function1d_d1 * serializeFunction1d_d1(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode, Functions::Function1d_d1 *a_function1d)
LUPI_HOST_DEVICE Probabilities::ProbabilityBase1d * serializeProbability1d(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode, Probabilities::ProbabilityBase1d *a_probability1d)
enum ptwXY_interpolation_e ptwXY_interpolation