27 for( std::vector<GIDI_settings_processedFlux>::const_iterator iter = particle.
mProcessedFluxes.begin( ); iter != particle.
mProcessedFluxes.end( ); ++iter ) {
43 if( energyMode_ != energyMode )
throw 1;
78 std::vector<GIDI_settings_processedFlux>::iterator iter;
81 if( temperature <= iter->getTemperature( ) )
break;
92 double priorTemperature, lastTemperature;
93 std::vector<GIDI_settings_processedFlux>::const_iterator iter;
101 lastTemperature = iter->getTemperature( );
102 if( lastTemperature > temperature )
break;
104 priorTemperature = iter->getTemperature( );
111 if( std::fabs( lastTemperature - temperature ) > std::fabs( temperature - priorTemperature ) ) --iter;
120 if(
mGroupX == NULL )
return( NULL );
122 if( processedFlux == NULL )
return( NULL );
136 double const *energies, *fluxes;
138 for(
int order = 0; order < (
int) flux.
size( ); ++order ) {
139 fluxOrder = flux[order];
143 fluxOrder->
size( ), energies, fluxes, &status_nf, 0 ) ) == NULL )
goto err;
144 mFluxXY.push_back( fluxXY );
146 mGroupedFlux.push_back( groupedFluxX );
162 for(
int order = 0; order < (
int)
mFlux.
size( ); ++order ) {
171 for( std::vector<ptwXYPoints *>::iterator iter =
mFluxXY.begin( ); iter !=
mFluxXY.end( ); ++iter )
ptwXY_free( *iter );
180 for( std::vector<ptwXYPoints *>::iterator iter =
mFluxXY.begin( ); iter !=
mFluxXY.end( ); ++iter )
ptwXY_free( *iter );
192 if( groupX == NULL )
return( NULL );
193 if( order < 0 ) order = 0;
194 if( order >= (
int)
mFluxXY.size( ) ) order = (
int)
mFluxXY.size( ) - 1;
double const * getFluxes(void) const
ptwXYPoints * ptwXY_xSlice(ptwXYPoints *ptwXY, double xMin, double xMax, int64_t secondarySize, int fill, nfu_status *status)
double const * pointer(void) const
ptwXPoints * ptwX_free(ptwXPoints *ptwX)
GIDI::ptwXPoints * mGroupX
ptwXYPoints * ptwXY_createFrom_Xs_Ys(ptwXY_interpolation interpolation, ptwXY_interpolationOtherInfo const *interpolationOtherInfo, double biSectionMax, double accuracy, int64_t primarySize, int64_t secondarySize, int64_t length, double const *Xs, double const *Ys, nfu_status *status, int userFlag)
ptwXYPoints * ptwXY_clone(ptwXYPoints *ptwXY, nfu_status *status)
GIDI::ptwXPoints * groupFunction(GIDI::statusMessageReporting *smr, GIDI::ptwXPoints *groupX, GIDI::ptwXYPoints *ptwXY1, int order) const
double ptwXY_getXMax(ptwXYPoints *ptwXY)
std::vector< GIDI_settings_processedFlux > mProcessedFluxes
double getTemperature() const
ptwXPoints * ptwXY_groupTwoFunctions(ptwXYPoints *ptwXY1, ptwXYPoints *ptwXY2, ptwXPoints *groupBoundaries, ptwXY_group_normType normType, ptwXPoints *ptwX_norm, nfu_status *status)
~GIDI_settings_processedFlux()
GIDI_settings_particle(int PoPId, bool transporting, int energyMode)
std::vector< GIDI::ptwXYPoints * > mFluxXY
#define GIDI_settings_projectileEnergyMode_continuousEnergy
enum nfu_status_e nfu_status
typedef int(XMLCALL *XML_NotStandaloneHandler)(void *userData)
ptwXPoints * ptwX_create(int64_t size, int64_t length, double const *xs, nfu_status *status)
GIDI_settings_group mGroup
GIDI_settings_processedFlux(GIDI_settings_flux const &flux, GIDI::ptwXPoints *groupX)
ptwXYPoints * ptwXY_free(ptwXYPoints *ptwXY)
#define GIDI_settings_projectileEnergyMode_grouped
ptwXPoints * ptwXY_groupOneFunction(ptwXYPoints *ptwXY, ptwXPoints *groupBoundaries, ptwXY_group_normType normType, ptwXPoints *ptwX_norm, nfu_status *status)
double const * getEnergies(void) const
ptwXPoints * ptwX_clone(ptwXPoints *ptwX, nfu_status *status)
GIDI_settings_processedFlux const * nearestFluxToTemperature(double temperature) const
int addFlux(GIDI::statusMessageReporting *smr, GIDI_settings_flux const &flux)
double ptwXY_getXMin(ptwXYPoints *ptwXY)
std::vector< GIDI::ptwXPoints * > mGroupedFlux
void setGroup(GIDI_settings_group const &group)
~GIDI_settings_particle()
GIDI::ptwXPoints * groupFunction(GIDI::statusMessageReporting *smr, GIDI::ptwXYPoints *ptwXY1, double temperature, int order) const
int initialize(int PoPId, bool transporting, int energyMode)