Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
GIDI Namespace Reference

Namespaces

namespace  GRIN
namespace  Functions
namespace  Map
namespace  Construction
namespace  Documentation_1_10
namespace  ExternalFiles
namespace  Table
namespace  Styles
namespace  Array
namespace  DoubleDifferentialCrossSection
namespace  Distributions
namespace  TargetInfo
namespace  Transporting
namespace  ACE_URR
namespace  Sums
namespace  RISI

Classes

class  GNDS_FileTypeInfo
class  Exception
class  SetupInfo
class  Form
class  LazyParsingHelperForm
class  PhysicalQuantity
class  ParticleInfo
class  AxisDomain
class  Axis
class  Grid
class  Axes
class  FlattenedArrayData
class  Array3d
class  Suite
class  Component
class  Flux
class  Group
class  Transportable
class  ExternalFile
class  Product
class  DelayedNeutron
class  DelayedNeutronProduct
class  FissionFragmentData
class  OutputChannel
class  Reaction
class  Protare
class  ProtareSingle
class  ProtareComposite
class  ProtareTNSL
class  Groups
class  Fluxes
class  MultiGroupCalulationInformation
class  Data1d
class  Vector
class  Matrix
class  GNDS_FileTypeInfoUserData

Typedefs

typedef std::set< std::size_t > ExcludeReactionsSet
typedef bool(* MapWalkCallBack) (Map::ProtareBase const *a_protareEntry, std::string const &a_library, void *a_userData, int a_level)
typedef Form *(* parseSuite) (Construction::Settings const &a_construction, Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pop, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)
typedef std::pair< std::string, double > stringAndDoublePair
typedef std::vector< stringAndDoublePairstringAndDoublePairs
typedef std::map< std::string, ParticleInfoParticleSubstitution
typedef std::vector< DelayedNeutronProductDelayedNeutronProducts

Enumerations

enum class  GNDS_FileType {
  uninitialized , unknown , pops , protare ,
  covarianceSuite , map
}
enum class  ProtareType { single , composite , TNSL }
enum class  FormType {
  generic , lazyParsingHelperForm , group , groups ,
  transportable , flux , fluxes , externalFile ,
  style , reaction , product , delayedNeutron ,
  fissionFragmentData , rate , physicalQuantity , axisDomain ,
  axis , grid , axes , flattenedArrayData ,
  array3d , array , constant1d , XYs1d ,
  Ys1d , polynomial1d , Legendre1d , gridded1d ,
  reference1d , xs_pdf_cdf1d , regions1d , resonancesWithBackground1d ,
  resonanceBackground1d , resonanceBackgroundRegion1d , URR_probabilityTables1d , fissionEnergyRelease1d ,
  branching1d , branching1dPids , thermalNeutronScatteringLaw1d , unspecified1d ,
  XYs2d , recoil2d , isotropic2d , discreteGamma2d ,
  primaryGamma2d , regions2d , gridded2d , generalEvaporation2d ,
  simpleMaxwellianFission2d , evaporation2d , Watt2d , MadlandNix2d ,
  weighted_function2d , weightedFunctionals2d , NBodyPhaseSpace2d , XYs3d ,
  regions3d , gridded3d , angularTwoBody , KalbachMann ,
  uncorrelated , unspecified , reference3d , multiGroup3d ,
  energyAngular , energyAngularMC , angularEnergy , angularEnergyMC ,
  LLNL_angularEnergy , coherentPhotonScattering , incoherentPhotonScattering , incoherentBoundToFreePhotonScattering ,
  thermalNeutronScatteringLaw , branching3d , coherentElastic , incoherentElastic ,
  incoherentInelastic , CoulombPlusNuclearElastic3d , LLNLLegendre , crossSectionSum ,
  multiplicitySum , summands , ACE_URR_probabilityTable , ACE_URR_incidentEnergy ,
  table , columnHeaders , column , GRIN_inelasticIncidentEnergy ,
  GRIN_captureLevelProbability
}
enum class  Frame { lab , centerOfMass }
enum class  TransportCorrectionType { None , Pendlebury , LLNL , Ferguson }
enum class  FileType { XML , HDF }

Functions

std::vector< std::string > vectorOfStrings (std::string const &a_string)
FormparseExternalFilesSuite (Construction::Settings const &a_construction, Suite *parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pop, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)
FormparseStylesSuite (Construction::Settings const &a_construction, Suite *parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pop, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)
FormparseTransportablesSuite (Construction::Settings const &a_construction, Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pops, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)
FormparseReaction (Construction::Settings const &a_construction, Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pops, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)
FormparseOrphanProduct (Construction::Settings const &a_construction, Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pops, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)
FormparseFissionComponent (Construction::Settings const &a_construction, Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pops, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)
FormparseReactionType (std::string const &a_moniker, Construction::Settings const &a_construction, Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pops, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)
FormparseSumsCrossSectionsSuite (Construction::Settings const &a_construction, Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pops, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)
FormparseSumsMultiplicitiesSuite (Construction::Settings const &a_construction, Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pops, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)
FormparseDoubleDifferentialCrossSectionSuite (Construction::Settings const &a_construction, Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pops, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)
FormparseScatteringAtom (Construction::Settings const &a_construction, Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pops, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)
FormparseCrossSectionSuite (Construction::Settings const &a_construction, Suite *parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pop, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)
FormparseDelayedNeutronsSuite (Construction::Settings const &a_construction, Suite *parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pop, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)
FormparseFissionEnergyReleasesSuite (Construction::Settings const &a_construction, Suite *parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pop, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)
FormparsePhysicalQuantitySuite (Construction::Settings const &a_construction, Suite *parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pop, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)
FormparseAvailableSuite (Construction::Settings const &a_construction, Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pops, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)
FormparseQSuite (Construction::Settings const &a_construction, Suite *parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pop, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)
FormparseProductSuite (Construction::Settings const &a_construction, Suite *parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pop, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)
FormparseMultiplicitySuite (Construction::Settings const &a_construction, Suite *parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pop, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)
FormparseDistributionSuite (Construction::Settings const &a_construction, Suite *parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pop, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)
FormparseAverageEnergySuite (Construction::Settings const &a_construction, Suite *parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pop, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)
FormparseAverageMomentumSuite (Construction::Settings const &a_construction, Suite *parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pop, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)
FormparseACE_URR_probabilityTables (Construction::Settings const &a_construction, Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pops, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)
FormparseColumnHeaders (Construction::Settings const &a_construction, Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pops, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)
Functions::Function1dFormdata1dParse (Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, Suite *parent)
Functions::Function1dFormdata1dParseAllowEmpty (Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, Suite *a_parent)
void data1dListParse (Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, std::vector< Functions::Function1dForm * > &a_function1ds)
Functions::Function2dFormdata2dParse (Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, Suite *parent)
void data2dListParse (Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, std::vector< Functions::Function2dForm * > &a_function2ds)
Functions::Function3dFormdata3dParse (Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, Suite *parent)
void checkOuterDomainValues1d (std::vector< Functions::Function1dForm * > &a_functions, std::vector< double > &a_Xs)
void checkOuterDomainValues2d (std::vector< Functions::Function2dForm * > &a_functions, std::vector< double > &a_Xs)
void checkSequentialDomainLimits1d (std::vector< Functions::Function1dForm * > &a_functions, std::vector< double > &a_Xs)
void checkSequentialDomainLimits2d (std::vector< Functions::Function2dForm * > &a_functions, std::vector< double > &a_Xs)
int parseFlattened1d (Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, Vector &data)
Vector collapse (Vector const &a_vector, Transporting::Settings const &a_settings, Transporting::Particles const &a_particles, double a_temperature)
Matrix collapse (Matrix const &a_matrix, Transporting::Settings const &a_settings, Transporting::Particles const &a_particles, double a_temperature, std::string const &a_productID)
Vector transportCorrect (Vector const &a_vector, Vector const &a_transportCorrection)
Matrix transportCorrect (Matrix const &a_matrix, Vector const &a_transportCorrection)
Vector multiGroupXYs1d (Transporting::MultiGroup const &a_boundaries, Functions::XYs1d const &a_function, Transporting::Flux const &a_flux)
VectormultiGroupTwoXYs1ds (MultiGroupCalulationInformation const &a_multiGroupCalulationInformation, Functions::XYs1d const &a_function1, Functions::XYs1d const &a_function2)
void calculate1dMultiGroupDataInComponent (ProtareSingle const *a_protare, std::string const &a_heatedMultiGroupLabel, MultiGroupCalulationInformation const &a_multiGroupCalulationInformation, Component &a_component, Functions::XYs1d const &a_crossSection)
void calculate1dMultiGroupFissionEnergyRelease (MultiGroupCalulationInformation const &a_multiGroupCalulationInformation, Functions::XYs1d const &a_weight, Functions::Function1dForm const *a_evaluated, Functions::Function1dForm *a_gridded1d)
int ENDL_CFromENDF_MT (int ENDF_MT, int *ENDL_C, int *ENDL_S)
GNDS_FileType GNDS_fileType (std::string const &a_fileName, GNDS_FileTypeInfo &a_GNDS_fileTypeInfo)
long binarySearchVector (double a_x, std::vector< double > const &a_Xs)
void intsToXMLList (GUPI::WriteInfo &a_writeInfo, std::string const &a_indent, std::vector< int > const &a_values, std::string const &a_attributes)
void parseValuesOfDoubles (Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, nf_Buffer< double > &a_vector)
void parseValuesOfDoubles (HAPI::Node const &a_node, SetupInfo &a_setupInfo, nf_Buffer< double > &a_vector, int a_useSystem_strtod)
void parseValuesOfInts (Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, std::vector< int > &a_vector)
void parseValuesOfInts (HAPI::Node const &a_node, SetupInfo &a_setupInfo, nf_Buffer< int > &a_vector)
void doublesToXMLList (GUPI::WriteInfo &a_writeInfo, std::string const &a_indent, std::vector< double > const &a_values, std::size_t a_start=0, bool a_newLine=true, std::string const &a_valueType="")
Frame parseFrame (HAPI::Node const &a_node, SetupInfo &a_setupInfo, std::string const &a_name)
std::string frameToString (Frame a_frame)
std::string intToString (int a_value)
std::string size_t_ToString (std::size_t a_value)
std::string nodeWithValuesToDoubles (GUPI::WriteInfo &a_writeInfo, std::string const &a_nodeName, std::vector< double > const &a_values)
void excludeReactionsSetAdjust (ExcludeReactionsSet &a_excludeReactionsSet, Protare const &a_protare)
Functions::Ys1d gridded1d2GIDI_Ys1d (Functions::Function1dForm const &a_function1d)
Functions::Ys1d vector2GIDI_Ys1d (Axes const &a_axes, Vector const &a_vector)
std::string LLNL_gidToLabel (int a_gid)
std::string LLNL_fidToLabel (int a_fid)
std::vector< std::string > sortedListOfStrings (std::vector< std::string > const &a_strings, bool a_orderIsAscending=true)
void energy2dToXMLList (GUPI::WriteInfo &a_writeInfo, std::string const &a_moniker, std::string const &a_indent, Functions::Function1dForm *a_function)
std::vector< Transporting::FluxsettingsFluxesFromFunction3d (Functions::Function3dForm const &a_function3d)
void calculate1dMultiGroupDataInComponent (LUPI_maybeUnused ProtareSingle const *a_protare, std::string const &a_heatedMultiGroupLabel, MultiGroupCalulationInformation const &a_multiGroupCalulationInformation, Component &a_component, Functions::XYs1d const &a_weight)
void parseValuesOfDoubles (HAPI::Node const &a_node, SetupInfo &a_setupInfo, nf_Buffer< double > &a_values, LUPI_maybeUnused int a_useSystem_strtod)
void parseValuesOfInts (LUPI_maybeUnused Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, nf_Buffer< int > &a_values)
Frame parseFrame (HAPI::Node const &a_node, LUPI_maybeUnused SetupInfo &a_setupInfo, std::string const &a_name)
FormparseExternalFilesSuite (LUPI_maybeUnused Construction::Settings const &a_construction, GIDI::Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, LUPI_maybeUnused PoPI::Database const &a_pops, LUPI_maybeUnused PoPI::Database const &a_internalPoPs, std::string const &a_name, LUPI_maybeUnused Styles::Suite const *a_styles)
FormparseStylesSuite (Construction::Settings const &a_construction, GIDI::Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pops, PoPI::Database const &a_internalPoPs, std::string const &a_name, LUPI_maybeUnused Styles::Suite const *a_styles)
FormparseTransportablesSuite (Construction::Settings const &a_construction, Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pops, LUPI_maybeUnused PoPI::Database const &a_internalPoPs, std::string const &a_name, LUPI_maybeUnused Styles::Suite const *a_styles)
FormparseSumsCrossSectionsSuite (Construction::Settings const &a_construction, LUPI_maybeUnused Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pops, PoPI::Database const &a_internalPoPs, std::string const &a_name, LUPI_maybeUnused Styles::Suite const *a_styles)
FormparseSumsMultiplicitiesSuite (Construction::Settings const &a_construction, LUPI_maybeUnused Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pops, PoPI::Database const &a_internalPoPs, std::string const &a_name, LUPI_maybeUnused Styles::Suite const *a_styles)
FormparseDoubleDifferentialCrossSectionSuite (Construction::Settings const &a_construction, Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pops, PoPI::Database const &a_internalPoPs, std::string const &a_name, LUPI_maybeUnused Styles::Suite const *a_styles)
FormparseScatteringAtom (Construction::Settings const &a_construction, LUPI_maybeUnused Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, LUPI_maybeUnused PoPI::Database const &a_pops, LUPI_maybeUnused PoPI::Database const &a_internalPoPs, LUPI_maybeUnused std::string const &a_name, LUPI_maybeUnused Styles::Suite const *a_styles)
FormparseCrossSectionSuite (Construction::Settings const &a_construction, Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, LUPI_maybeUnused PoPI::Database const &a_pops, LUPI_maybeUnused PoPI::Database const &a_internalPoPs, std::string const &a_name, LUPI_maybeUnused Styles::Suite const *a_styles)
FormparseFissionEnergyReleasesSuite (Construction::Settings const &a_construction, Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, LUPI_maybeUnused PoPI::Database const &a_pops, LUPI_maybeUnused PoPI::Database const &a_internalPoPs, std::string const &a_name, LUPI_maybeUnused Styles::Suite const *a_styles)
FormparsePhysicalQuantitySuite (LUPI_maybeUnused Construction::Settings const &a_construction, LUPI_maybeUnused Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, LUPI_maybeUnused PoPI::Database const &a_pops, LUPI_maybeUnused PoPI::Database const &a_internalPoPs, LUPI_maybeUnused std::string const &a_name, LUPI_maybeUnused Styles::Suite const *a_styles)
FormparseAvailableSuite (Construction::Settings const &a_construction, Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, LUPI_maybeUnused PoPI::Database const &a_pops, LUPI_maybeUnused PoPI::Database const &a_internalPoPs, std::string const &a_name, LUPI_maybeUnused Styles::Suite const *a_styles)
FormparseQSuite (Construction::Settings const &a_construction, Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, LUPI_maybeUnused PoPI::Database const &a_pops, LUPI_maybeUnused PoPI::Database const &a_internalPoPs, LUPI_maybeUnused std::string const &a_name, LUPI_maybeUnused Styles::Suite const *a_styles)
FormparseMultiplicitySuite (Construction::Settings const &a_construction, Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, LUPI_maybeUnused PoPI::Database const &a_pops, LUPI_maybeUnused PoPI::Database const &a_internalPoPs, std::string const &a_name, LUPI_maybeUnused Styles::Suite const *a_styles)
FormparseDistributionSuite (Construction::Settings const &a_construction, Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, LUPI_maybeUnused PoPI::Database const &a_pops, LUPI_maybeUnused PoPI::Database const &a_internalPoPs, std::string const &a_name, LUPI_maybeUnused Styles::Suite const *a_styles)
FormparseAverageEnergySuite (Construction::Settings const &a_construction, Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, LUPI_maybeUnused PoPI::Database const &a_pops, LUPI_maybeUnused PoPI::Database const &a_internalPoPs, std::string const &a_name, LUPI_maybeUnused Styles::Suite const *a_styles)
FormparseAverageMomentumSuite (Construction::Settings const &a_construction, Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, LUPI_maybeUnused PoPI::Database const &a_pops, LUPI_maybeUnused PoPI::Database const &a_internalPoPs, std::string const &a_name, LUPI_maybeUnused Styles::Suite const *a_styles)
FormparseACE_URR_probabilityTables (Construction::Settings const &a_construction, Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, LUPI_maybeUnused PoPI::Database const &a_pops, LUPI_maybeUnused PoPI::Database const &a_internalPoPs, std::string const &a_name, LUPI_maybeUnused Styles::Suite const *a_styles)
FormparseColumnHeaders (Construction::Settings const &a_construction, Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, LUPI_maybeUnused PoPI::Database const &a_pops, LUPI_maybeUnused PoPI::Database const &a_internalPoPs, std::string const &a_name, LUPI_maybeUnused Styles::Suite const *a_styles)
std::ostream & operator<< (std::ostream &a_os, PhysicalQuantity const &a_physicalQuantity)

Typedef Documentation

◆ DelayedNeutronProducts

Definition at line 4031 of file GIDI.hpp.

◆ ExcludeReactionsSet

typedef std::set<std::size_t> GIDI::ExcludeReactionsSet

Definition at line 47 of file GIDI.hpp.

◆ MapWalkCallBack

typedef bool(* GIDI::MapWalkCallBack) (Map::ProtareBase const *a_protareEntry, std::string const &a_library, void *a_userData, int a_level)

Definition at line 62 of file GIDI.hpp.

◆ parseSuite

typedef Form *(* GIDI::parseSuite) (Construction::Settings const &a_construction, Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pop, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)

Definition at line 86 of file GIDI.hpp.

◆ ParticleSubstitution

typedef std::map<std::string, ParticleInfo> GIDI::ParticleSubstitution

Definition at line 487 of file GIDI.hpp.

◆ stringAndDoublePair

typedef std::pair<std::string, double> GIDI::stringAndDoublePair

Definition at line 485 of file GIDI.hpp.

◆ stringAndDoublePairs

Definition at line 486 of file GIDI.hpp.

Enumeration Type Documentation

◆ FileType

enum class GIDI::FileType
strong
Enumerator
XML 
HDF 

Definition at line 148 of file GIDI.hpp.

148{ XML, HDF };

◆ FormType

enum class GIDI::FormType
strong
Enumerator
generic 
lazyParsingHelperForm 
group 
groups 
transportable 
flux 
fluxes 
externalFile 
style 
reaction 
product 
delayedNeutron 
fissionFragmentData 
rate 
physicalQuantity 
axisDomain 
axis 
grid 
axes 
flattenedArrayData 
array3d 
array 
constant1d 
XYs1d 
Ys1d 
polynomial1d 
Legendre1d 
gridded1d 
reference1d 
xs_pdf_cdf1d 
regions1d 
resonancesWithBackground1d 
resonanceBackground1d 
resonanceBackgroundRegion1d 
URR_probabilityTables1d 
fissionEnergyRelease1d 
branching1d 
branching1dPids 
thermalNeutronScatteringLaw1d 
unspecified1d 
XYs2d 
recoil2d 
isotropic2d 
discreteGamma2d 
primaryGamma2d 
regions2d 
gridded2d 
generalEvaporation2d 
simpleMaxwellianFission2d 
evaporation2d 
Watt2d 
MadlandNix2d 
weighted_function2d 
weightedFunctionals2d 
NBodyPhaseSpace2d 
XYs3d 
regions3d 
gridded3d 
angularTwoBody 
KalbachMann 
uncorrelated 
unspecified 
reference3d 
multiGroup3d 
energyAngular 
energyAngularMC 
angularEnergy 
angularEnergyMC 
LLNL_angularEnergy 
coherentPhotonScattering 
incoherentPhotonScattering 
incoherentBoundToFreePhotonScattering 
thermalNeutronScatteringLaw 
branching3d 
coherentElastic 
incoherentElastic 
incoherentInelastic 
CoulombPlusNuclearElastic3d 
LLNLLegendre 
crossSectionSum 
multiplicitySum 
summands 
ACE_URR_probabilityTable 
ACE_URR_incidentEnergy 
table 
columnHeaders 
column 
GRIN_inelasticIncidentEnergy 
GRIN_captureLevelProbability 

Definition at line 118 of file GIDI.hpp.

122 // 1d functions.
126 // 2d functions.
130 // 3d functions.
132 // distributions.
137 // Sums stuff.
139 // ACE style URR stuff currently in the applicationData node.
141 // Table stuff.
143 // Non-GNDS compliant GRIN forms.
@ lazyParsingHelperForm
Definition GIDI.hpp:118
@ ACE_URR_probabilityTable
Definition GIDI.hpp:140
@ CoulombPlusNuclearElastic3d
Definition GIDI.hpp:136
@ weighted_function2d
Definition GIDI.hpp:129
@ incoherentBoundToFreePhotonScattering
Definition GIDI.hpp:135
@ resonancesWithBackground1d
Definition GIDI.hpp:124
@ weightedFunctionals2d
Definition GIDI.hpp:129
@ LLNL_angularEnergy
Definition GIDI.hpp:134
@ simpleMaxwellianFission2d
Definition GIDI.hpp:128
@ incoherentInelastic
Definition GIDI.hpp:136
@ URR_probabilityTables1d
Definition GIDI.hpp:124
@ thermalNeutronScatteringLaw
Definition GIDI.hpp:135
@ flattenedArrayData
Definition GIDI.hpp:121
@ generalEvaporation2d
Definition GIDI.hpp:128
@ NBodyPhaseSpace2d
Definition GIDI.hpp:129
@ incoherentPhotonScattering
Definition GIDI.hpp:135
@ coherentPhotonScattering
Definition GIDI.hpp:135
@ resonanceBackgroundRegion1d
Definition GIDI.hpp:124
@ GRIN_inelasticIncidentEnergy
Definition GIDI.hpp:144
@ GRIN_captureLevelProbability
Definition GIDI.hpp:144
@ fissionEnergyRelease1d
Definition GIDI.hpp:125
@ incoherentElastic
Definition GIDI.hpp:136
@ fissionFragmentData
Definition GIDI.hpp:119
@ ACE_URR_incidentEnergy
Definition GIDI.hpp:140
@ thermalNeutronScatteringLaw1d
Definition GIDI.hpp:125
@ resonanceBackground1d
Definition GIDI.hpp:124
const axis_t axis_to_type< N >::axis
Definition pugixml.cc:9668

◆ Frame

enum class GIDI::Frame
strong
Enumerator
lab 
centerOfMass 

Definition at line 146 of file GIDI.hpp.

146{ lab, centerOfMass };
@ centerOfMass
Definition GIDI.hpp:146

◆ GNDS_FileType

enum class GIDI::GNDS_FileType
strong
Enumerator
uninitialized 
unknown 
pops 
protare 
covarianceSuite 
map 

Definition at line 89 of file GIDI.hpp.

◆ ProtareType

enum class GIDI::ProtareType
strong
Enumerator
single 
composite 
TNSL 

Definition at line 116 of file GIDI.hpp.

◆ TransportCorrectionType

enum class GIDI::TransportCorrectionType
strong
Enumerator
None 
Pendlebury 
LLNL 
Ferguson 

Definition at line 147 of file GIDI.hpp.

Function Documentation

◆ binarySearchVector()

long GIDI::binarySearchVector ( double a_x,
std::vector< double > const & a_Xs )

This function searchs the list of ascending values a_Xs for the two values that bound a_x using a bi-section search. If a_x is less than the first value, -2 is returned. If a_x is greater than the last value, -1 is returned. Otherwise, the returned index will be such that a_Xs[index] <= a_x < a_Xs[index+1].

Parameters
a_x[in] The value to search.
a_Xs[in] The list of ascending values to
Returns
[in] The index within the a_Xs list that bounds a_x.

Definition at line 33 of file GIDI_misc.cc.

33 {
34/*
35* Returns -2 is a_x < first point of a_Xs, -1 if > last point of a_Xs, and the lower index of a_Xs otherwise.
36*/
37 std::size_t size = a_Xs.size( );
38 std::size_t imin = 0, imid, imax = size - 1;
39
40 if( a_x < a_Xs[0] ) return( -2 );
41 if( a_x > a_Xs[size-1] ) return( -1 );
42 while( 1 ) {
43 imid = ( imin + imax ) >> 1;
44 if( imid == imin ) break;
45 if( a_x < a_Xs[imid] ) {
46 imax = imid; }
47 else {
48 imin = imid;
49 }
50 }
51 return( static_cast<long>( imin ) );
52}

Referenced by GIDI::Functions::Regions1d::evaluate(), GIDI::Functions::Regions2d::evaluate(), GIDI::Functions::XYs2d::evaluate(), and GIDI::Functions::XYs3d::evaluate().

◆ calculate1dMultiGroupDataInComponent() [1/2]

void GIDI::calculate1dMultiGroupDataInComponent ( LUPI_maybeUnused ProtareSingle const * a_protare,
std::string const & a_heatedMultiGroupLabel,
MultiGroupCalulationInformation const & a_multiGroupCalulationInformation,
Component & a_component,
Functions::XYs1d const & a_weight )

This function finds a component's data that can be multi-grouped (generally a Functions::XYs1d instance, multi-groups it with the boundaries and flux data in a_multiGroupCalulationInformation with weight a_crossSection and adds/replaces with style label a_heatedMultiGroupLabel.

Parameters
a_heatedMultiGroupLabel[in] The label of the style for the multi-group data being added.
a_multiGroupCalulationInformation[in] Store multi-group boundary and flux data used for multi-grouping.
a_component[in] The Component whose data will be multi-grouped.
a_weight[in] An additional function to weight the data with. This is generally a reactions cross section.

Definition at line 364 of file GIDI_collapse.cc.

365 {
366
367 Functions::XYs1d const *xys1d = static_cast<Functions::XYs1d const *>( a_component.findInstanceOfTypeInLineage( a_heatedMultiGroupLabel, GIDI_XYs1dChars ) );
368 Functions::XYs1d const *xys1d2{ nullptr };
369
370 if( xys1d == nullptr ) {
371 Functions::Constant1d const *constand1d =
372 static_cast<Functions::Constant1d const *>( a_component.findInstanceOfTypeInLineage( a_heatedMultiGroupLabel, GIDI_constant1dChars ) );
373 if( constand1d != nullptr ) {
374 xys1d2 = GIDI::Functions::XYs1d::makeConstantXYs1d( GIDI::Axes( ), constand1d->domainMin( ), constand1d->domainMax( ), constand1d->value( ) ); }
375 else {
377 static_cast<Functions::Regions1d const *>( a_component.findInstanceOfTypeInLineage( a_heatedMultiGroupLabel, GIDI_regions1dChars ) );
378 if( regions1d != nullptr ) {
379 xys1d2 = regions1d->asXYs1d( true, 1e-4, 1e-6, 1e-6 ); }
380 else {
382 static_cast<Functions::Branching1d const *>( a_component.findInstanceOfTypeInLineage( a_heatedMultiGroupLabel, GIDI_branching1dChars ) );
383 if( branching1d != nullptr ) {
384 xys1d2 = Functions::XYs1d::makeConstantXYs1d( GIDI::Axes( ), a_weight.domainMin( ), a_weight.domainMax( ), branching1d->multiplicity( ) ); }
385 else {
387 static_cast<Functions::Polynomial1d const *>( a_component.findInstanceOfTypeInLineage( a_heatedMultiGroupLabel, GIDI_polynomial1dChars ) );
388 if( polynomial1d != nullptr ) {
389 xys1d2 = polynomial1d->asXYs1d( true, 1e-4, 1e-6, 1e-6 ); }
390 else {
391 throw Exception( "calculate1dMultiGroupDataInComponent: from findInstanceOfTypeInLineage, no XYs1d, Constant1d, Regions1d, Branching1d or Polynomial1d form found in "
392 + a_component.toXLink( ) + "." );
393 }
394 }
395 }
396 }
397 xys1d = xys1d2;
398 }
399
400 Vector *vector = multiGroupTwoXYs1ds( a_multiGroupCalulationInformation, *xys1d, a_weight );
401 Functions::Gridded1d *gridded1d = a_component.get<Functions::Gridded1d>( a_heatedMultiGroupLabel );
402 gridded1d->setData( *vector );
403 delete vector;
404 delete xys1d2;
405}
#define GIDI_regions1dChars
Definition GIDI.hpp:292
#define GIDI_XYs1dChars
Definition GIDI.hpp:288
#define GIDI_branching1dChars
Definition GIDI.hpp:296
#define GIDI_constant1dChars
Definition GIDI.hpp:287
#define GIDI_polynomial1dChars
Definition GIDI.hpp:290
static XYs1d * makeConstantXYs1d(Axes const &a_axes, double a_domainMin, double a_domainMax, double a_value)
Form const * findInstanceOfTypeInLineage(std::string const &_label, std::string const &a_moniker) const
T * get(std::size_t a_Index)
Definition GIDI.hpp:2642
std::string toXLink() const
Vector * multiGroupTwoXYs1ds(MultiGroupCalulationInformation const &a_multiGroupCalulationInformation, Functions::XYs1d const &a_function1, Functions::XYs1d const &a_function2)

◆ calculate1dMultiGroupDataInComponent() [2/2]

void GIDI::calculate1dMultiGroupDataInComponent ( ProtareSingle const * a_protare,
std::string const & a_heatedMultiGroupLabel,
MultiGroupCalulationInformation const & a_multiGroupCalulationInformation,
Component & a_component,
Functions::XYs1d const & a_crossSection )

◆ calculate1dMultiGroupFissionEnergyRelease()

void GIDI::calculate1dMultiGroupFissionEnergyRelease ( MultiGroupCalulationInformation const & a_multiGroupCalulationInformation,
Functions::XYs1d const & a_weight,
Functions::Function1dForm const * a_evaluated,
Functions::Function1dForm * a_gridded1d )

This function

Parameters
a_multiGroupCalulationInformation[in] Store multi-group boundary and flux data used for multi-grouping.
a_weight[in] An additional function to weight the data with. This is generally a reactions cross section.
a_evaluated[in] This is the evaluated form of the fission energy released.
a_gridded1d[in] This is the current multi-grouped form whose data will be replace.

Definition at line 416 of file GIDI_collapse.cc.

417 {
418
419 if( a_gridded1d == nullptr ) return;
420
421 Functions::XYs1d const *xys1d = nullptr;
422 Functions::Gridded1d *gridded1d = static_cast<Functions::Gridded1d *>( a_gridded1d );
423
424 if( a_evaluated->moniker( ) == GIDI_XYs1dChars ) {
425 xys1d = static_cast<Functions::XYs1d const *>( a_evaluated ); }
426 else if( a_evaluated->moniker( ) == GIDI_polynomial1dChars ) {
427 Functions::Polynomial1d const *polynomial1d = static_cast<Functions::Polynomial1d const *>( a_evaluated );
428 xys1d = polynomial1d->asXYs1d( true, 1e-4, 1e-6, 1e-6 ); }
429 else {
430 throw Exception( "calculate1dMultiGroupFissionEnergyRelease: form not XYs1d or Polynomial1d: " + a_evaluated->toXLink( ) + "." );
431 }
432
433 Vector *vector = multiGroupTwoXYs1ds( a_multiGroupCalulationInformation, *xys1d, a_weight );
434 gridded1d->setData( *vector );
435 delete vector;
436
437 if( a_evaluated != xys1d ) delete xys1d;
438}
XYs1d * asXYs1d(bool a_asLinlin, double a_accuray, double a_lowerEps, double a_upperEps) const

Referenced by GIDI::FissionFragmentData::calculateMultiGroupData().

◆ checkOuterDomainValues1d()

void GIDI::checkOuterDomainValues1d ( std::vector< Functions::Function1dForm * > & a_functions,
std::vector< double > & a_Xs )

Function that checks that the outerDomainValue values of the elements of a_functions are increasing and fills a_Xs with the outerDomainValue values.

Parameters
a_functions[in] List of functions to check.
a_Xs[in] A list of doubles that is filled with the outerDomainValues from the list of functions in a_functions.

Definition at line 923 of file GIDI_parseSuites.cc.

923 {
924
925 for( auto iter = a_functions.begin( ); iter != a_functions.end( ); ++iter ) {
926 if( a_Xs.size( ) > 0 ) {
927 if( (*iter)->outerDomainValue( ) <= a_Xs.back( ) ) throw Exception( "checkOuterDomainValues1d: next outerDomainValue <= current outerDomainValue." );
928 }
929 a_Xs.push_back( (*iter)->outerDomainValue( ) );
930 }
931}

◆ checkOuterDomainValues2d()

void GIDI::checkOuterDomainValues2d ( std::vector< Functions::Function2dForm * > & a_functions,
std::vector< double > & a_Xs )

Function that checks that the outerDomainValue values of the elements of a_functions are increasing and fills a_Xs with the outerDomainValue values.

Parameters
a_functions[in] List of functions to check.
a_Xs[in] A list of doubles that is filled with the outerDomainValues from the list of functions in a_functions.

Definition at line 940 of file GIDI_parseSuites.cc.

940 {
941
942 for( auto iter = a_functions.begin( ); iter != a_functions.end( ); ++iter ) {
943 if( a_Xs.size( ) > 0 ) {
944 if( (*iter)->outerDomainValue( ) <= a_Xs.back( ) ) throw Exception( "checkOuterDomainValues2d: next outerDomainValue <= current outerDomainValue." );
945 }
946 a_Xs.push_back( (*iter)->outerDomainValue( ) );
947 }
948}

◆ checkSequentialDomainLimits1d()

void GIDI::checkSequentialDomainLimits1d ( std::vector< Functions::Function1dForm * > & a_functions,
std::vector< double > & a_Xs )

Function that checks that the domain overlap of the elements of a_functions are . The domain minimum values from each function and the domain maximum value are filled into a_Xs.

Parameters
a_functions[in] The list of functions whose domain limits are checked.
a_Xs[in] A std::vector<double> that is with the domain minimum values from each function and the domain maximum value.

Definition at line 958 of file GIDI_parseSuites.cc.

958 {
959
960 double domainMax = -1;
961
962 for( auto iter = a_functions.begin( ); iter != a_functions.end( ); ++iter ) {
963 double domainMin = (*iter)->domainMin( );
964
965 if( a_Xs.size( ) > 0 ) {
966 if( fabs( domainMax - domainMin ) > 1e-8 * ( fabs( domainMin ) + fabs( domainMax ) ) )
967 throw Exception( "checkSequentialDomainLimits1d: domains not abutting." );
968 }
969 a_Xs.push_back( domainMin );
970 domainMax = (*iter)->domainMax( );
971 }
972 if( a_Xs.size( ) > 0 ) a_Xs.push_back( domainMax );
973}

◆ checkSequentialDomainLimits2d()

void GIDI::checkSequentialDomainLimits2d ( std::vector< Functions::Function2dForm * > & a_functions,
std::vector< double > & a_Xs )

Function that checks that the domain overlap of the elements of a_functions are . The domain minimum values from each function and the domain maximum value are filled into a_Xs.

Parameters
a_functions[in] The list of functions whose domain limits are checked.
a_Xs[in] A std::vector<double> that is with the domain minimum values from each function and the domain maximum value.

Definition at line 983 of file GIDI_parseSuites.cc.

983 {
984
985 double domainMax = -1;
986
987 for( auto iter = a_functions.begin( ); iter != a_functions.end( ); ++iter ) {
988 double domainMin = (*iter)->domainMin( );
989
990 if( a_Xs.size( ) > 0 ) {
991 if( fabs( domainMax - domainMin ) > 1e-8 * ( fabs( domainMin ) + fabs( domainMax ) ) )
992 throw Exception( "checkSequentialDomainLimits2d: domains not abutting." );
993 }
994 a_Xs.push_back( domainMin );
995 domainMax = (*iter)->domainMax( );
996 }
997 if( a_Xs.size( ) > 0 ) a_Xs.push_back( a_functions.back( )->domainMax( ) );
998}

◆ collapse() [1/2]

Matrix GIDI::collapse ( Matrix const & a_matrix,
Transporting::Settings const & a_settings,
Transporting::Particles const & a_particles,
double a_temperature,
std::string const & a_productID )

Collapses a multi-group matrix.

Parameters
a_matrix[in] The Matrix to collapse.
a_settings[in] Specifies the uncollapsed and collapsed multi-group information and the flux.
a_particles[in] The list of particles to be transported.
a_temperature[in] The temperature of the flux to use when collapsing.
a_productID[in] Particle id of the outgoing particle.
Returns
Returns the collapsed Matrix.

Definition at line 87 of file GIDI_collapse.cc.

87 {
88
89 if( a_matrix.size( ) == 0 ) return( a_settings.multiGroupZeroMatrix( a_particles, a_productID, true ) );
90
91 Transporting::Particle const *projectile( a_particles.particle( a_settings.projectileID( ) ) );
92 Transporting::ProcessedFlux const *flux( projectile->nearestProcessedFluxToTemperature( a_temperature ) );
93 std::vector<double> const &multiGroupFlux( flux->multiGroupFlux( ) );
94 std::vector<std::size_t> const &projectileCollapseIndices( projectile->collapseIndices( ) );
95
96 Transporting::Particle const *product( a_particles.particle( a_productID ) );
97 std::size_t n2 = product->numberOfGroups( );
98
99 std::vector<std::size_t> productCollapseIndices( product->collapseIndices( ) );
100 productCollapseIndices[0] = 0;
101 productCollapseIndices[n2] = a_matrix[0].size( );
102
103 std::vector<double> conservationWeight( a_matrix[0].size( ), 1. );
104 if( product->conserve() == Transporting::Conserve::energyOut ) {
105 std::vector<double> boundaries = product->fineMultiGroup().boundaries();
106 for( std::size_t i1 = 0; i1 < boundaries.size() - 1; ++i1 ) {
107 conservationWeight[i1] = 0.5 * (boundaries[i1] + boundaries[i1+1]);
108 }
109 }
110
111 Matrix productCollapsed( 0, 0 );
112 for( std::size_t i1 = 0; i1 < a_matrix.size( ); ++i1 ) {
113 productCollapsed.push_back( collapseVector( a_matrix[i1], productCollapseIndices, conservationWeight, false ) );
114 }
115
116 Matrix productCollapsedTranspose = productCollapsed.transpose( );
117 Matrix collapsedTranspose( 0, 0 );
118 for( std::size_t i2 = 0; i2 < n2; ++i2 ) {
119 collapsedTranspose.push_back( collapseVector( productCollapsedTranspose[i2], projectileCollapseIndices, multiGroupFlux, true ) );
120 }
121
122 if( product->conserve() == Transporting::Conserve::energyOut ) {
123 double denominator = 1;
124 std::vector<double> boundaries = product->multiGroup().boundaries();
125 for( std::size_t i1 = 0; i1 < boundaries.size() - 1; ++i1 ) {
126 denominator = 0.5 * (boundaries[i1] + boundaries[i1+1]);
127 collapsedTranspose[i1] /= denominator;
128 }
129 }
130
131 return( collapsedTranspose.transpose( ) );
132}
Matrix transpose()

◆ collapse() [2/2]

Vector GIDI::collapse ( Vector const & a_vector,
Transporting::Settings const & a_settings,
Transporting::Particles const & a_particles,
double a_temperature )

Collapses a multi-group vector.

Parameters
a_vector[in] The Vector to collapse.
a_settings[in] Specifies the uncollapsed and collapsed multi-group information and the flux.
a_particles[in] The list of particles to be transported.
a_temperature[in] The temperature of the flux to use when collapsing.
Returns
Returns the collapsed Vector.

Definition at line 30 of file GIDI_collapse.cc.

30 {
31
32 Transporting::Particle const *projectile( a_particles.particle( a_settings.projectileID( ) ) );
33 Transporting::ProcessedFlux const *flux( projectile->nearestProcessedFluxToTemperature( a_temperature ) );
34 std::vector<double> const &multiGroupFlux( flux->multiGroupFlux( ) );
35 std::vector<std::size_t> const &collapseIndices( projectile->collapseIndices( ) );
36
37 return( collapseVector( a_vector, collapseIndices, multiGroupFlux, true ) );
38}

Referenced by GIDI::ProtareSingle::multiGroupTransportCorrection(), and GIDI::ProtareTNSL::multiGroupTransportCorrection().

◆ data1dListParse()

void GIDI::data1dListParse ( Construction::Settings const & a_construction,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
std::vector< Functions::Function1dForm * > & a_function1ds )

Function that parses the list of 1d function nodes contained in a_node.

Parameters
a_construction[in] Used to pass user options to the constructor.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_function1ds[in] The object to fill with the list of parsed 1d functions.

Definition at line 808 of file GIDI_parseSuites.cc.

809 {
810
811 for( HAPI::Node child = a_node.first_child( ); !child.empty( ); child.to_next_sibling( ) ) {
812 Functions::Function1dForm *form = data1dParse( a_construction, child, a_setupInfo, nullptr );
813
814 if( form == nullptr ) throw Exception( "data1dListParse data1dParse returned nullptr." );
815 a_function1ds.push_back( form );
816 }
817}
bool empty() const
Definition HAPI_Node.cc:150
Node first_child() const
Definition HAPI_Node.cc:82
Functions::Function1dForm * data1dParse(Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, Suite *parent)

◆ data1dParse()

Functions::Function1dForm * GIDI::data1dParse ( Construction::Settings const & a_construction,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
Suite * a_parent )

Function that parses a node one-d function node. Called from a Suite::parse instance.

Parameters
a_construction[in] Used to pass user options for parsing.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
Returns
The parsed and constructed GIDI::Function1d instance.

Definition at line 747 of file GIDI_parseSuites.cc.

747 {
748
749 Functions::Function1dForm *form = nullptr;
750 std::string name( a_node.name( ) );
751
752 if( name == GIDI_constant1dChars ) {
753 form = new Functions::Constant1d( a_construction, a_node, a_setupInfo, a_parent ); }
754 else if( name == GIDI_XYs1dChars ) {
755 form = new Functions::XYs1d( a_construction, a_node, a_setupInfo, a_parent ); }
756 else if( name == GIDI_Ys1dChars ) {
757 form = new Functions::Ys1d( a_construction, a_node, a_setupInfo, a_parent ); }
758 else if( name == GIDI_polynomial1dChars ) {
759 form = new Functions::Polynomial1d( a_construction, a_node, a_setupInfo, a_parent ); }
760 else if( name == GIDI_LegendreChars ) {
761 form = new Functions::Legendre1d( a_construction, a_node, a_setupInfo, a_parent ); }
762 else if( name == GIDI_regions1dChars ) {
763 form = new Functions::Regions1d( a_construction, a_node, a_setupInfo, a_parent ); }
764 else if( name == GIDI_gridded1dChars ) {
765 form = new Functions::Gridded1d( a_construction, a_node, a_setupInfo, a_parent ); }
766 else if( name == GIDI_referenceChars ) {
767 form = new Functions::Reference1d( a_construction, a_node, a_setupInfo, a_parent ); }
768 else if( name == GIDI_xs_pdf_cdf1dChars ) {
769 form = new Functions::Xs_pdf_cdf1d( a_construction, a_node, a_setupInfo, a_parent ); }
770 else if( name == GIDI_unspecifiedChars ) {
771 form = new Functions::Unspecified1d( a_construction, a_node, a_setupInfo, a_parent ); }
772 else {
773 std::cout << "data1dParse: Ignoring unsupported 1d function = '" << name << "'" << std::endl;
774 }
775
776 return( form );
777}
#define GIDI_unspecifiedChars
Definition GIDI.hpp:363
#define GIDI_gridded1dChars
Definition GIDI.hpp:293
#define GIDI_LegendreChars
Definition GIDI.hpp:291
#define GIDI_xs_pdf_cdf1dChars
Definition GIDI.hpp:295
#define GIDI_referenceChars
Definition GIDI.hpp:294
#define GIDI_Ys1dChars
Definition GIDI.hpp:289
const char * name(G4int ptype)

Referenced by data1dListParse(), data1dParseAllowEmpty(), GIDI::DoubleDifferentialCrossSection::n_ThermalNeutronScatteringLaw::DebyeWallerIntegral::DebyeWallerIntegral(), GIDI::Functions::Evaporation2d::Evaporation2d(), GIDI::Functions::FissionEnergyRelease::FissionEnergyRelease(), GIDI::Functions::GeneralEvaporation2d::GeneralEvaporation2d(), GIDI::Functions::MadlandNix2d::MadlandNix2d(), parseAvailableSuite(), parseAverageEnergySuite(), parseAverageMomentumSuite(), parseCrossSectionSuite(), parseMultiplicitySuite(), parseQSuite(), GIDI::Functions::ResonanceBackgroundRegion1d::ResonanceBackgroundRegion1d(), GIDI::Functions::SimpleMaxwellianFission2d::SimpleMaxwellianFission2d(), GIDI::Functions::Watt2d::Watt2d(), and GIDI::Functions::Weighted_function2d::Weighted_function2d().

◆ data1dParseAllowEmpty()

Functions::Function1dForm * GIDI::data1dParseAllowEmpty ( Construction::Settings const & a_construction,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
Suite * a_parent )

Function that parses a node one-d function node. Called from a Suite::parse instance. If no node exists, returns nullptr.

Parameters
a_construction[in] Used to pass user options to the constructor.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
Returns
The parsed and constructed GIDI::Function1d instance.

Definition at line 790 of file GIDI_parseSuites.cc.

791 {
792
793 std::string name( a_node.name( ) );
794
795 if( name == "" ) return( nullptr );
796 return( data1dParse( a_construction, a_node, a_setupInfo, a_parent ) );
797}

Referenced by GIDI::DoubleDifferentialCrossSection::n_ThermalNeutronScatteringLaw::T_effective::T_effective().

◆ data2dListParse()

void GIDI::data2dListParse ( Construction::Settings const & a_construction,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
std::vector< Functions::Function2dForm * > & a_function2ds )

Function that parses the list of 2d function nodes contained in a_node.

Parameters
a_construction[in] Used to pass user options to the constructor.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_function2ds[in] The object to fill with the list of parsed 2d functions.

Definition at line 878 of file GIDI_parseSuites.cc.

879 {
880
881 for( HAPI::Node child = a_node.first_child( ); !child.empty( ); child.to_next_sibling( ) ) {
882 Functions::Function2dForm *form = data2dParse( a_construction, child, a_setupInfo, nullptr );
883
884 if( form == nullptr ) throw Exception( "data2dListParse data2dParse returned nullptr." );
885 a_function2ds.push_back( form );
886 }
887}
Functions::Function2dForm * data2dParse(Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, Suite *parent)

◆ data2dParse()

Functions::Function2dForm * GIDI::data2dParse ( Construction::Settings const & a_construction,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
Suite * a_parent )

Function that parses a node two-d function node. Called from a Suite::parse instance.

Parameters
a_construction[in] Used to pass user options to the constructor.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
Returns
The parsed and constructed GIDI::Function2d instance.

Definition at line 829 of file GIDI_parseSuites.cc.

829 {
830
831 Functions::Function2dForm *form = nullptr;
832 std::string name( a_node.name( ) );
833
834 if( name == GIDI_XYs2dChars ) {
835 form = new Functions::XYs2d( a_construction, a_node, a_setupInfo, a_parent ); }
836 else if( name == GIDI_recoilChars ) {
837 form = new Functions::Recoil2d( a_construction, a_node, a_setupInfo, a_parent ); }
838 else if( name == GIDI_isotropic2dChars ) {
839 form = new Functions::Isotropic2d( a_construction, a_node, a_setupInfo, a_parent ); }
840 else if( name == GIDI_discreteGammaChars ) {
841 form = new Functions::DiscreteGamma2d( a_construction, a_node, a_setupInfo, a_parent ); }
842 else if( name == GIDI_primaryGammaChars ) {
843 form = new Functions::PrimaryGamma2d( a_construction, a_node, a_setupInfo, a_parent ); }
844 else if( name == GIDI_generalEvaporationChars ) {
845 form = new Functions::GeneralEvaporation2d( a_construction, a_node, a_setupInfo, a_parent ); }
846 else if( name == GIDI_simpleMaxwellianFissionChars ) {
847 form = new Functions::SimpleMaxwellianFission2d( a_construction, a_node, a_setupInfo, a_parent ); }
848 else if( name == GIDI_evaporationChars ) {
849 form = new Functions::Evaporation2d( a_construction, a_node, a_setupInfo, a_parent ); }
850 else if( name == GIDI_WattChars ) {
851 form = new Functions::Watt2d( a_construction, a_node, a_setupInfo, a_parent ); }
852 else if( name == GIDI_MadlandNixChars ) {
853 form = new Functions::MadlandNix2d( a_construction, a_node, a_setupInfo, a_parent ); }
854 else if( name == GIDI_weightedFunctionalsChars ) {
855 form = new Functions::WeightedFunctionals2d( a_construction, a_node, a_setupInfo, a_parent ); }
856 else if( name == GIDI_NBodyPhaseSpaceChars ) {
857 form = new Functions::NBodyPhaseSpace2d( a_construction, a_node, a_setupInfo, a_parent ); }
858 else if( name == GIDI_regions2dChars ) {
859 form = new Functions::Regions2d( a_construction, a_node, a_setupInfo, a_parent ); }
860 else if( name == GIDI_gridded2dChars ) {
861 form = new Functions::Gridded2d( a_construction, a_node, a_setupInfo, a_parent ); }
862 else {
863 std::cout << "data2dParse: Ignoring unsupported 2d function = '" << name << "'" << std::endl;
864 }
865
866 return( form );
867}
#define GIDI_simpleMaxwellianFissionChars
Definition GIDI.hpp:306
#define GIDI_WattChars
Definition GIDI.hpp:308
#define GIDI_MadlandNixChars
Definition GIDI.hpp:309
#define GIDI_discreteGammaChars
Definition GIDI.hpp:303
#define GIDI_primaryGammaChars
Definition GIDI.hpp:304
#define GIDI_regions2dChars
Definition GIDI.hpp:312
#define GIDI_XYs2dChars
Definition GIDI.hpp:300
#define GIDI_recoilChars
Definition GIDI.hpp:301
#define GIDI_NBodyPhaseSpaceChars
Definition GIDI.hpp:311
#define GIDI_generalEvaporationChars
Definition GIDI.hpp:305
#define GIDI_gridded2dChars
Definition GIDI.hpp:313
#define GIDI_isotropic2dChars
Definition GIDI.hpp:302
#define GIDI_evaporationChars
Definition GIDI.hpp:307
#define GIDI_weightedFunctionalsChars
Definition GIDI.hpp:310

Referenced by GIDI::Distributions::AngularEnergyMC::AngularEnergyMC(), GIDI::Distributions::AngularTwoBody::AngularTwoBody(), data2dListParse(), GIDI::Distributions::EnergyAngularMC::EnergyAngularMC(), GIDI::Flux::Flux(), GIDI::Distributions::KalbachMann::KalbachMann(), GIDI::Distributions::LLNLAngularEnergy::LLNLAngularEnergy(), GIDI::DoubleDifferentialCrossSection::n_ThermalNeutronScatteringLaw::S_table::S_table(), GIDI::Distributions::Uncorrelated::Uncorrelated(), GIDI::Functions::URR_probabilityTables1d::URR_probabilityTables1d(), and GIDI::Functions::Weighted_function2d::Weighted_function2d().

◆ data3dParse()

Functions::Function3dForm * GIDI::data3dParse ( Construction::Settings const & a_construction,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
Suite * a_parent )

Function that parses a node three-d function node. Called from a Suite::parse instance.

Parameters
a_construction[in] Used to pass user options to the constructor.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
Returns
The parsed and constructed GIDI::Function3d instance.

Definition at line 900 of file GIDI_parseSuites.cc.

900 {
901
902 Functions::Function3dForm *form = nullptr;
903 std::string name( a_node.name( ) );
904
905 if( name == GIDI_XYs3dChars ) {
906 form = new Functions::XYs3d( a_construction, a_node, a_setupInfo, a_parent ); }
907 else if( name == GIDI_gridded3dChars ) {
908 form = new Functions::Gridded3d( a_construction, a_node, a_setupInfo ); }
909 else {
910 std::cout << "data3dParse: Ignoring unsupported 3d function = '" << name << "'" << std::endl;
911 }
912
913 return( form );
914}
#define GIDI_XYs3dChars
Definition GIDI.hpp:316
#define GIDI_gridded3dChars
Definition GIDI.hpp:317

Referenced by GIDI::Fluxes::addFile(), GIDI::Distributions::AngularEnergy::AngularEnergy(), GIDI::Distributions::AngularEnergyMC::AngularEnergyMC(), GIDI::Distributions::EnergyAngular::EnergyAngular(), GIDI::Distributions::EnergyAngularMC::EnergyAngularMC(), and GIDI::Distributions::LLNLAngularEnergy::LLNLAngularEnergy().

◆ doublesToXMLList()

void GIDI::doublesToXMLList ( GUPI::WriteInfo & a_writeInfo,
std::string const & a_indent,
std::vector< double > const & a_values,
std::size_t a_start,
bool a_newLine,
std::string const & a_valueType )

Adds the list of doubles to the list of XML lines in a_writeInfo.

Parameters
a_writeInfo[in/out] Instance containing incremental indentation, values per line and other information and stores the appended lines.
a_indent[in] The amount to indent this node.
a_values[in] The list of doubles to convert to strings and add to a_writeInfo.
a_start[in] The value for the start attribute.
a_newLine[in] If false, the first a_writeInfo.m_valuesPerLine values are added to the last line with no indentation; otherwise, they are put on a new line with indentation.
a_valueType[in] The value for the valueType attribute.

Definition at line 180 of file GIDI_misc.cc.

180 {
181
182 int valuesPerLine( a_writeInfo.m_valuesPerLine );
183 std::string indent( a_indent );
184 std::string attributes;
185 std::string indent2 = a_writeInfo.incrementalIndent( a_indent );
186 std::string XMLLine;
187 std::string sep = "";
188
189 if( !a_newLine ) indent = "";
190 if( a_valueType != "" ) attributes += a_writeInfo.addAttribute( GIDI_valueTypeChars, a_valueType );
191 if( a_start != 0 ) attributes += a_writeInfo.addAttribute( GIDI_startChars, size_t_ToString( a_start ) );
192 XMLLine = a_writeInfo.nodeStarter( indent, GIDI_valuesChars, attributes );
193
194 if( valuesPerLine < 1 ) valuesPerLine = 1;
195 int numberOfValuesInLine = 0;
196 for( std::size_t i1 = 0; i1 < a_values.size( ); ++i1 ) {
197 XMLLine += sep + LUPI::Misc::doubleToShortestString( a_values[i1] );
198 sep = a_writeInfo.m_sep;
199 ++numberOfValuesInLine;
200
201 if( numberOfValuesInLine == valuesPerLine ) {
202 if( a_newLine ) {
203 a_writeInfo.push_back( XMLLine ); }
204 else {
205 a_writeInfo.m_lines.back( ) += XMLLine;
206 }
207 numberOfValuesInLine = 0;
208 XMLLine.clear( );
209 XMLLine = indent2;
210 a_newLine = true;
211 sep = "";
212 }
213 }
214 if( numberOfValuesInLine > 0 ) {
215 if( a_newLine ) {
216 a_writeInfo.push_back( XMLLine ); }
217 else {
218 a_writeInfo.m_lines.back( ) += XMLLine;
219 } }
220 else if( a_values.size( ) == 0 ) {
221 a_writeInfo.push_back( XMLLine );
222 }
223
224 a_writeInfo.addNodeEnder( GIDI_valuesChars );
225}
#define GIDI_valuesChars
Definition GIDI.hpp:260
#define GIDI_valueTypeChars
Definition GIDI.hpp:431
#define GIDI_startChars
Definition GIDI.hpp:412
void push_back(std::string const &a_line)
Definition GUPI.hpp:53
std::list< std::string > m_lines
Definition GUPI.hpp:45
void addNodeEnder(std::string const &a_moniker)
Definition GUPI.hpp:59
int m_valuesPerLine
Definition GUPI.hpp:47
std::string incrementalIndent(std::string const &indent)
Definition GUPI.hpp:52
std::string nodeStarter(std::string const &indent, std::string const &a_moniker, std::string const &a_attributes="")
Definition GUPI.hpp:62
std::string m_sep
Definition GUPI.hpp:48
std::string addAttribute(std::string const &a_name, std::string const &a_value) const
Definition GUPI.hpp:60
std::string size_t_ToString(std::size_t a_value)
Definition GIDI_misc.cc:428
std::string doubleToShortestString(double a_value, int a_significantDigits=15, int a_favorEFormBy=0)
Definition LUPI_misc.cc:349

Referenced by GIDI::FlattenedArrayData::toXMLList(), GIDI::Grid::toXMLList(), GIDI::Functions::Gridded1d::toXMLList_func(), GIDI::Functions::Legendre1d::toXMLList_func(), GIDI::Functions::Polynomial1d::toXMLList_func(), GIDI::Functions::XYs1d::toXMLList_func(), and GIDI::Functions::Ys1d::toXMLList_func().

◆ ENDL_CFromENDF_MT()

int GIDI::ENDL_CFromENDF_MT ( int ENDF_MT,
int * ENDL_C,
int * ENDL_S )

Calculates the ENDL C and S values for a ENDF MT value.

Parameters
ENDF_MT[in] The ENDF MT value.
ENDL_C[out] The ENDL C value for the ENDF MT value.
ENDL_S[out] The ENDL S value for the ENDF MT value.
Returns
Returns 0 if the ENDF MT value is valid and 1 otherwise.

Definition at line 923 of file GIDI_reaction.cc.

923 {
924
925 int MT1_50ToC[] = { 1, 10, -3, 11, -5, 0, 0, 0, 0, -10,
926 32, 0, 0, 0, 0, 12, 13, 15, 15, 15,
927 15, 26, 36, 33, -25, 0, -27, 20, 27, -30,
928 0, 22, 24, 25, -35, -36, 14, 15, 0, 0,
929 29, 16, 0, 17, 34, 0, 0, 0, 0 };
930 int MT100_200ToC[] = { -101, 46, 40, 41, 42, 44, 45, 37, -109, 0,
931 18, 48, -113, -114, 19, 39, 47, 0, 0, 0,
932 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
934 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
935 0, -152, -153, -154, 43, -156, -157, 23, 31, -160,
936 -161, -162, -163, -164, -165, -166, -167, -168, -169, -170,
937 -171, -172, -173, -174, -175, -176, -177, -178, -179, -180,
938 -181, -182, -183, -184, -185, -186, -187, -188, 28, -190,
939 -191, -192, 38, -194, -195, -196, -197, -198, -199, -200 };
940 *ENDL_C = 0;
941 *ENDL_S = 0;
942 if( ENDF_MT <= 0 ) {
943 *ENDL_C = -ENDF_MT;
944 return( 1 );
945 }
946 if( ENDF_MT > 1572 ) return( 1 );
947 if( ENDF_MT < 50 ) {
948 *ENDL_C = MT1_50ToC[ENDF_MT - 1]; }
949 else if( ENDF_MT <= 91 ) {
950 *ENDL_C = 11;
951 if( ENDF_MT != 91 ) *ENDL_S = 1; }
952 else if( ( ENDF_MT > 100 ) && ( ENDF_MT <= 200 ) ) {
953 *ENDL_C = MT100_200ToC[ENDF_MT - 101]; }
954 else if( ( ENDF_MT == 452 ) || ( ENDF_MT == 455 ) || ( ENDF_MT == 456 ) || ( ENDF_MT == 458 ) ) {
955 *ENDL_C = 15;
956 if( ENDF_MT == 455 ) *ENDL_S = 7; }
957 else if( ( ENDF_MT >= 502 ) && ( ENDF_MT <= 572 ) ) {
958 if( ENDF_MT == 502 ) {
959 *ENDL_C = 71; }
960 else if( ENDF_MT == 504 ) {
961 *ENDL_C = 72; }
962 else if( ( ENDF_MT >= 515 ) && ( ENDF_MT <= 517 ) ) {
963 *ENDL_C = 74; }
964 else if( ENDF_MT == 522 ) {
965 *ENDL_C = 73; }
966 else if( ( ENDF_MT >= 534 ) && ( ENDF_MT <= 572 ) ) {
967 *ENDL_C = 73; } }
968 else if( ENDF_MT >= 600 ) {
969 if( ENDF_MT < 650 ) {
970 *ENDL_C = 40;
971 if( ENDF_MT != 649 ) *ENDL_S = 1; }
972 else if( ENDF_MT < 700 ) {
973 *ENDL_C = 41;
974 if( ENDF_MT != 699 ) *ENDL_S = 1; }
975 else if( ENDF_MT < 750 ) {
976 *ENDL_C = 42;
977 if( ENDF_MT != 749 ) *ENDL_S = 1; }
978 else if( ENDF_MT < 800 ) {
979 *ENDL_C = 44;
980 if( ENDF_MT != 799 ) *ENDL_S = 1; }
981 else if( ENDF_MT < 850 ) {
982 *ENDL_C = 45;
983 if( ENDF_MT != 849 ) *ENDL_S = 1; }
984 else if( ( ENDF_MT >= 875 ) && ( ENDF_MT <= 891 ) ) {
985 *ENDL_C = 12;
986 if( ENDF_MT != 891 ) *ENDL_S = 1; }
987 else if( ( ENDF_MT >= 1534 ) && (ENDF_MT <= 1572 ) ) {
988 *ENDL_C = 72;
989 }
990 }
991
992 return( 0 );
993}

Referenced by GIDI::Reaction::Reaction(), and GIDI::Reaction::Reaction().

◆ energy2dToXMLList()

void GIDI::energy2dToXMLList ( GUPI::WriteInfo & a_writeInfo,
std::string const & a_moniker,
std::string const & a_indent,
Functions::Function1dForm * a_function )

Fills the argument a_writeInfo with the XML lines that represent this. Recursively enters each sub-node.

Parameters
a_writeInfo[in/out] Instance containing incremental indentation and other information and stores the appended lines.
a_moniker[in] The moniker for the energy type.
a_indent[in] The amount to indent this node.
a_function[in] The energy function whose information is converted to XML.

Definition at line 442 of file GIDI_misc.cc.

442 {
443
444 std::string indent2 = a_writeInfo.incrementalIndent( a_indent );
445
446 if( a_function == nullptr ) return;
447
448 a_writeInfo.addNodeStarter( a_indent, a_moniker, "" );
449 a_function->toXMLList( a_writeInfo, indent2 );
450 a_writeInfo.addNodeEnder( a_moniker );
451}
void toXMLList(GUPI::WriteInfo &a_writeInfo, std::string const &a_indent) const
Definition GIDI.hpp:1023
void addNodeStarter(std::string const &indent, std::string const &a_moniker, std::string const &a_attributes="")
Definition GUPI.hpp:55

Referenced by GIDI::Functions::Evaporation2d::toXMLList_func(), GIDI::Functions::GeneralEvaporation2d::toXMLList_func(), GIDI::Functions::MadlandNix2d::toXMLList_func(), GIDI::Functions::SimpleMaxwellianFission2d::toXMLList_func(), and GIDI::Functions::Watt2d::toXMLList_func().

◆ excludeReactionsSetAdjust()

void GIDI::excludeReactionsSetAdjust ( ExcludeReactionsSet & a_excludeReactionsSet,
Protare const & a_protare )

Returns a new ExcludeReactionsSet with

Parameters
a_protare[in] The Protare instance used to determine the number of reactions to adjust the new indices by.
Returns
returns the startIndex attribute of a_node.

Definition at line 461 of file GIDI_misc.cc.

461 {
462
463 ExcludeReactionsSet excludeReactionsSet;
464
465 for( auto iter = a_excludeReactionsSet.begin( ); iter != a_excludeReactionsSet.end( ); ++iter ) {
466 if( (*iter) >= a_protare.numberOfReactions( ) ) {
467 excludeReactionsSet.insert( (*iter) - a_protare.numberOfReactions( ) );
468 }
469 }
470
471 a_excludeReactionsSet = std::move( excludeReactionsSet );
472}
std::set< std::size_t > ExcludeReactionsSet
Definition GIDI.hpp:47

Referenced by GIDI::ProtareComposite::multiGroupAvailableEnergy(), GIDI::ProtareTNSL::multiGroupAvailableEnergy(), GIDI::ProtareComposite::multiGroupAvailableMomentum(), GIDI::ProtareTNSL::multiGroupAvailableMomentum(), GIDI::ProtareComposite::multiGroupAverageEnergy(), GIDI::ProtareTNSL::multiGroupAverageEnergy(), GIDI::ProtareComposite::multiGroupAverageMomentum(), GIDI::ProtareTNSL::multiGroupAverageMomentum(), GIDI::ProtareComposite::multiGroupCrossSection(), GIDI::ProtareTNSL::multiGroupCrossSection(), GIDI::ProtareComposite::multiGroupDepositionEnergy(), GIDI::ProtareTNSL::multiGroupDepositionEnergy(), GIDI::ProtareComposite::multiGroupDepositionMomentum(), GIDI::ProtareTNSL::multiGroupDepositionMomentum(), GIDI::ProtareComposite::multiGroupFissionGammaMultiplicity(), GIDI::ProtareComposite::multiGroupFissionMatrix(), GIDI::ProtareComposite::multiGroupFissionNeutronMultiplicity(), GIDI::ProtareComposite::multiGroupGain(), GIDI::ProtareTNSL::multiGroupGain(), GIDI::ProtareComposite::multiGroupMultiplicity(), GIDI::ProtareTNSL::multiGroupMultiplicity(), GIDI::ProtareComposite::multiGroupProductMatrix(), GIDI::ProtareTNSL::multiGroupProductMatrix(), GIDI::ProtareComposite::multiGroupQ(), GIDI::ProtareTNSL::multiGroupQ(), and GIDI::ProtareComposite::multiGroupTransportCorrection().

◆ frameToString()

std::string GIDI::frameToString ( Frame a_frame)

This function returns a std::string representation of a frame.

Parameters
a_frame[in] The frame to convert to a string.
Returns
A std::string instance.

Definition at line 375 of file GIDI_misc.cc.

375 {
376
377 if( a_frame == Frame::lab ) return( GIDI_labChars );
378 return( GIDI_centerOfMassChars );
379}
#define GIDI_labChars
Definition GIDI.hpp:460
#define GIDI_centerOfMassChars
Definition GIDI.hpp:459

Referenced by GIDI::ProtareSingle::toXMLList(), and GIDI::Distributions::Distribution::toXMLNodeStarter().

◆ GNDS_fileType()

GNDS_FileType GIDI::GNDS_fileType ( std::string const & a_fileName,
GNDS_FileTypeInfo & a_GNDS_fileTypeInfo )

Opens the specified file and parses the first line to determine its GNDS type (i.e., protare (reactionSuite), map or PoPs file). Returns the GNDS type via the GNDS_FileType enum. If the return value and the value of a_GNDS_fileTypeInfo.GNDS_fileType( ) is uninitialized an error was detected opening the file or by the XML parser (expat). If it is unknown the parsed file is an XML file but not a valid GNDS file.

Parameters
a_fileName[in] The path to the file whose GNDS type is to be determined.
a_GNDS_fileTypeInfo[in] The GNDS_FileTypeInfo instance containing the return information.
Returns
enum indicating the GNDS type of file referened by a_fileName.

Definition at line 130 of file GIDI_GNDS_fileType.cc.

130 {
131
132 a_GNDS_fileTypeInfo.setGNDS_fileType( GNDS_FileType::uninitialized );
133
134 char buffer[10 * 1024 + 1];
135 size_t bufferSize = sizeof( buffer ) - 1;
136 FILE *fileDescriptor;
137
138#ifdef GIDI_PLUS_NOEXPAT
139 throw Exception( "\nGIDI::fileType failed as expat not included." );
140#endif
141
142 fileDescriptor = fopen( a_fileName.c_str( ), "r" );
143 if( fileDescriptor == nullptr ) throw Exception( "GIDI::fileType failed to open file '" + a_fileName + "'." );
144
145 XML_Parser xmlParser = XML_ParserCreate( nullptr );
146 if( xmlParser == nullptr ) {
147 fclose( fileDescriptor );
148 throw Exception( "XML_ParserCreate failed." );
149 }
150
151 XML_SetElementHandler( xmlParser, xml_startElementHandler, xml_endElementHandler );
152
153 GNDS_FileTypeInfoUserData userData( xmlParser, a_GNDS_fileTypeInfo );
154 XML_SetUserData( xmlParser, &userData );
155
156 enum XML_Status status = XML_STATUS_ERROR; // Initialize to silence compiler warning
157 size_t count = 0;
158 while( ( count = fread( buffer, bufferSize, 1, fileDescriptor ) ) > 0 ) {
159 status = XML_Parse( xmlParser, buffer, (int) count, 0 );
160 if( status != XML_STATUS_OK ) break;
161 }
162
163// enum XML_Error error = XML_GetErrorCode( xmlParser );
164 XML_ParserFree( xmlParser );
165 fclose( fileDescriptor );
166
167 if( status == XML_STATUS_ERROR ) throw Exception( "GIDI::fileType expat parsing error." );
168// What about other status values like XML_STATUS_SUSPENDED.
169 return( a_GNDS_fileTypeInfo.GNDS_fileType( ) );
170}
#define bufferSize
Definition LUPI_times.cc:21
void setGNDS_fileType(GNDS_FileType a_GNDS_fileType)
Definition GIDI.hpp:109
GNDS_FileType GNDS_fileType() const
Definition GIDI.hpp:108
XML_ParserCreate(const XML_Char *encoding)
Definition xmlparse.c:716
#define XML_STATUS_ERROR
Definition expat.h:73
XML_SetUserData(XML_Parser parser, void *userData)
Definition xmlparse.c:1530
XML_ParserFree(XML_Parser parser)
Definition xmlparse.c:1430
XML_SetElementHandler(XML_Parser parser, XML_StartElementHandler start, XML_EndElementHandler end)
Definition xmlparse.c:1584
XML_Parse(XML_Parser parser, const char *s, int len, int isFinal)
Definition xmlparse.c:1819
struct XML_ParserStruct * XML_Parser
Definition expat.h:52
#define XML_STATUS_OK
Definition expat.h:75
XML_Status
Definition expat.h:71

◆ gridded1d2GIDI_Ys1d()

Functions::Ys1d GIDI::gridded1d2GIDI_Ys1d ( Functions::Function1dForm const & a_function1d)

This function converts the y-values from the Gridded1d into a Ys1d instance.

Parameters
a_function1d[in] The Gridded1d whoses y-values are converted into a Ys1d instance.
Returns
A Ys1d instance of the y-values.

Definition at line 252 of file GIDI_misc.cc.

252 {
253
254 std::vector<double> ys;
255 Functions::Ys1d ys1d( a_function1d.axes( ), ptwXY_interpolationFlat, 0, ys );
256
257 switch( a_function1d.type( ) ) {
259 {
260 Functions::Gridded1d const &gridded1d = static_cast<Functions::Gridded1d const &>( a_function1d );
261 Vector const &data = gridded1d.data( );
262 std::size_t start = 0;
263
264 for( ; start < data.size( ); ++start ) {
265 if( data[start] != 0 ) break;
266 }
267 ys1d.setStart( start );
268
269 for( std::size_t i1 = start; i1 < data.size( ); ++i1 ) ys1d.push_back( data[i1] );
270 }
271 break;
272 default :
273 throw Exception( "gridded1d2GIDI_Ys1d: unsupported 1d function type " + a_function1d.label( ) );
274 }
275
276 return( ys1d );
277}
std::vector< double > & data()
Definition GIDI_data.hpp:81
std::size_t size() const
Definition GIDI_data.hpp:79
@ ptwXY_interpolationFlat
Definition ptwXY.h:38

◆ intsToXMLList()

void GIDI::intsToXMLList ( GUPI::WriteInfo & a_writeInfo,
std::string const & a_indent,
std::vector< int > const & a_values,
std::string const & a_attributes )

Adds the list of integers to the list of XML lines in a_writeInfo.

Parameters
a_writeInfo[in/out] Instance containing incremental indentation, values per line and other information and stores the appended lines.
a_indent[in] The amount to indent this node.
a_values[in] The list of integers to convert to strings and add to a_writeInfo.
a_attributes[in] String representation of the attributes for the GNDS values node.

Definition at line 63 of file GIDI_misc.cc.

63 {
64
65 a_writeInfo.addNodeStarter( a_indent, GIDI_valuesChars, a_attributes );
66
67 std::string intString;
68 std::string sep( "" );
69
70 for( std::size_t i1 = 0; i1 < a_values.size( ); ++i1 ) {
71 intString += sep + intToString( a_values[i1] );
72 if( i1 == 0 ) sep = a_writeInfo.m_sep;
73 }
74
75 a_writeInfo.m_lines.back( ) += intString;
76 a_writeInfo.addNodeEnder( GIDI_valuesChars );
77}
std::string intToString(int a_value)
Definition GIDI_misc.cc:415

Referenced by GIDI::FlattenedArrayData::toXMLList().

◆ intToString()

◆ LLNL_fidToLabel()

std::string GIDI::LLNL_fidToLabel ( int a_fid)

This function converts an integer fid value (i.e., flux id) into the LLNL legacy bdfls label.

Parameters
a_fid[in] The integer fid used to construct the LLNL legacy bdfls label.
Returns
The LLNL legacy bdfls label.

Definition at line 324 of file GIDI_misc.cc.

324 {
325
326 return( LUPI::Misc::argumentsToString( "LLNL_fid_%d", a_fid ) );
327}

Referenced by GIDI::Transporting::Fluxes_from_bdfls::getViaFID().

◆ LLNL_gidToLabel()

std::string GIDI::LLNL_gidToLabel ( int a_gid)

This function converts an integer gid value (i.e., group id) into the LLNL legacy bdfls label.

Parameters
a_gid[in] The integer gid used to construct the LLNL legacy bdfls label.
Returns
The LLNL legacy bdfls label.

Definition at line 311 of file GIDI_misc.cc.

311 {
312
313 return( LUPI::Misc::argumentsToString( "LLNL_gid_%d", a_gid ) );
314}

Referenced by GIDI::Transporting::Groups_from_bdfls::getViaGID().

◆ multiGroupTwoXYs1ds()

Vector * GIDI::multiGroupTwoXYs1ds ( MultiGroupCalulationInformation const & a_multiGroupCalulationInformation,
Functions::XYs1d const & a_function1,
Functions::XYs1d const & a_function2 )

This function returns a flux weighted multi-group version of the product of a_function1 times * a_function2. The caller owns the returned instance and is respondible for deleting it (i.e., freeing its memory when no longer needed).

Parameters
a_multiGroupCalulationInformation[in] Store multi-group boundary and flux data used for multi-grouping.
a_function1[in] First function of the product.
a_function2[in] Second function of the product, generally a reaction's cross section.
Returns
Returns the multi-grouped Vector.

Definition at line 267 of file GIDI_collapse.cc.

268 {
269
270 ptwXPoints *boundaries_xs = const_cast<ptwXPoints *>( a_multiGroupCalulationInformation.m_boundaries_xs );
271 ptwXPoints *multiGroupFlux = const_cast<ptwXPoints * >( a_multiGroupCalulationInformation.m_multiGroupFlux );
272 ptwXYPoints *ptwXY1 = nullptr, *ptwXY2 = nullptr, *fluxes_xys = nullptr;
273 ptwXPoints *groups = nullptr;
274 std::string errorMessage( "GIDI::multiGroupTwoXYs1ds: ptwXY_clone2 for a_function1 failed." );
275 statusMessageReporting *smr = nullptr;
276
277 ptwXY1 = ptwXY_clone2( smr, a_function1.ptwXY( ) );
278 if( ptwXY1 != nullptr ) {
279 ptwXY2 = ptwXY_clone2( smr, a_function2.ptwXY( ) );
280 if( ptwXY2 == nullptr ) {
281 errorMessage = "GIDI::multiGroupTwoXYs1ds: ptwXY_clone2 for a_function2 failed."; }
282 else {
283 double min1, min2, max1, max2;
284
285 ptwXY_domainMin( smr, ptwXY1, &min1 );
286 ptwXY_domainMax( smr, ptwXY1, &max1 );
287 ptwXY_domainMin( smr, ptwXY2, &min2 );
288 ptwXY_domainMax( smr, ptwXY2, &max2 );
289 fluxes_xys = ptwXY_domainSlice( smr, const_cast<ptwXYPoints *>( a_multiGroupCalulationInformation.m_fluxes_xys ),
290 std::max( min1, min2 ), std::min( max1, max2), 10, 1 );
291
292 if( fluxes_xys == nullptr ) {
293 errorMessage = "GIDI::multiGroupTwoXYs1ds: ptwXY_domainSlice for flux failed."; }
294 else {
295 ptwXY_mutualifyDomains( smr, ptwXY1, 1e-12, 1e-12, 1, ptwXY2, 1e-12, 1e-12, 1 );
296 ptwXY_mutualifyDomains( smr, ptwXY1, 1e-12, 1e-12, 1, fluxes_xys, 1e-12, 1e-12, 1 );
297 ptwXY_mutualifyDomains( smr, fluxes_xys, 1e-12, 1e-12, 1, ptwXY2, 1e-12, 1e-12, 1 );
298 groups = ptwXY_groupThreeFunctions( smr, ptwXY1, ptwXY2, fluxes_xys, boundaries_xs, ptwXY_group_normType_norm, multiGroupFlux );
299 }
300 }
301 }
302 ptwXY_free( ptwXY1 );
303 ptwXY_free( ptwXY2 );
304 ptwXY_free( fluxes_xys );
305
306 if( groups == nullptr ) {
307 throw Exception( errorMessage );
308 }
309
310 Vector *vector = new Vector( static_cast<std::size_t>( ptwX_length( smr, groups ) ), ptwX_getPointAtIndex( smr, groups, 0 ) );
311 ptwX_free( groups );
312
313 return( vector );
314}
ptwXYPoints * ptwXY_domainSlice(statusMessageReporting *smr, ptwXYPoints *ptwXY, double domainMin, double domainMax, int64_t secondarySize, int fill)
Definition ptwXY_core.c:422
ptwXYPoints * ptwXY_clone2(statusMessageReporting *smr, ptwXYPoints const *ptwXY)
Definition ptwXY_core.c:312
@ ptwXY_group_normType_norm
Definition ptwXY.h:31
struct ptwXYPoints_s ptwXYPoints
nfu_status ptwXY_mutualifyDomains(statusMessageReporting *smr, ptwXYPoints *ptwXY1, double lowerEps1, double upperEps1, int positiveXOnly1, ptwXYPoints *ptwXY2, double lowerEps2, double upperEps2, int positiveXOnly2)
ptwXYPoints * ptwXY_free(ptwXYPoints *ptwXY)
Definition ptwXY_core.c:782
ptwXPoints * ptwXY_groupThreeFunctions(statusMessageReporting *smr, ptwXYPoints *ptwXY1, ptwXYPoints *ptwXY2, ptwXYPoints *ptwXY3, ptwXPoints *groupBoundaries, ptwXY_group_normType normType, ptwXPoints *ptwX_norm)
nfu_status ptwXY_domainMax(statusMessageReporting *smr, ptwXYPoints *ptwXY, double *value)
nfu_status ptwXY_domainMin(statusMessageReporting *smr, ptwXYPoints *ptwXY, double *value)
int64_t ptwX_length(statusMessageReporting *smr, ptwXPoints *ptwX)
Definition ptwX_core.c:222
double * ptwX_getPointAtIndex(statusMessageReporting *smr, ptwXPoints *ptwX, int64_t index)
Definition ptwX_core.c:280
struct ptwXPoints_s ptwXPoints
ptwXPoints * ptwX_free(ptwXPoints *ptwX)
Definition ptwX_core.c:213

Referenced by calculate1dMultiGroupDataInComponent(), and calculate1dMultiGroupFissionEnergyRelease().

◆ multiGroupXYs1d()

Vector GIDI::multiGroupXYs1d ( Transporting::MultiGroup const & a_boundaries,
Functions::XYs1d const & a_function,
Transporting::Flux const & a_flux )

Returns a flux weighted multi-group version of the function a_function.

Parameters
a_boundaries[in] List of multi-group boundaries.
a_function[in] Function to multi-group.
a_flux[in] Flux to use for weighting.
Returns
Returns the multi-grouped Vector of a_function.

Definition at line 214 of file GIDI_collapse.cc.

214 {
215
216 std::vector<double> const &boundaries = a_boundaries.boundaries( );
217 int64_t boundariesSize = static_cast<int64_t>( boundaries.size( ) );
218 ptwXPoints *boundaries_xs = ptwX_create( nullptr, boundariesSize, boundariesSize, &(boundaries[0]) );
219 if( boundaries_xs == nullptr ) throw Exception( "GIDI::multiGroup: ptwX_create failed." );
220
221 Transporting::Flux_order const &flux_order_0 = a_flux[0];
222 double const *energies = flux_order_0.energies( );
223 double const *fluxes = flux_order_0.fluxes( );
225 12, 1e-3, static_cast<int64_t>( flux_order_0.size( ) ), 10, static_cast<int64_t>( flux_order_0.size( ) ), energies, fluxes, 0 );
226 if( fluxes_xys == nullptr ) {
227 ptwX_free( boundaries_xs );
228 throw Exception( "GIDI::multiGroup: ptwXY_createFrom_Xs_Ys failed." );
229 }
230
231 ptwXPoints *multiGroupFlux = ptwXY_groupOneFunction( nullptr, fluxes_xys, boundaries_xs, ptwXY_group_normType_none, nullptr );
232 if( multiGroupFlux == nullptr ) {
233 ptwX_free( boundaries_xs );
234 ptwXY_free( fluxes_xys );
235 throw Exception( "GIDI::multiGroup: ptwXY_groupOneFunction failed." );
236 }
237
238 ptwXYPoints *ptwXY = ptwXY_clone2( nullptr, a_function.ptwXY( ) );
239 ptwXPoints *groups = nullptr;
240 if( ptwXY != nullptr ) {
241 ptwXY_mutualifyDomains( nullptr, ptwXY, 1e-12, 1e-12, 1, fluxes_xys, 1e-12, 1e-12, 1 );
242 groups = ptwXY_groupTwoFunctions( nullptr, ptwXY, fluxes_xys, boundaries_xs, ptwXY_group_normType_norm, multiGroupFlux );
243 }
244 ptwX_free( boundaries_xs );
245 ptwXY_free( fluxes_xys );
246 ptwX_free( multiGroupFlux );
247 ptwXY_free( ptwXY );
248 if( groups == nullptr ) throw Exception( "GIDI::multiGroup: ptwXY_groupTwoFunctions failed." );
249
250 Vector vector( static_cast<std::size_t>( ptwX_length( nullptr, groups ) ), ptwX_getPointAtIndex( nullptr, groups, 0 ) );
251 ptwX_free( groups );
252
253 return( vector );
254}
std::size_t size() const
Definition GIDI.hpp:3554
double const * fluxes() const
Definition GIDI.hpp:3557
double const * energies() const
Definition GIDI.hpp:3555
char const * ptwXY_interpolationToString(ptwXY_interpolation interpolation)
@ ptwXY_group_normType_none
Definition ptwXY.h:31
ptwXPoints * ptwXY_groupTwoFunctions(statusMessageReporting *smr, ptwXYPoints *ptwXY1, ptwXYPoints *ptwXY2, ptwXPoints *groupBoundaries, ptwXY_group_normType normType, ptwXPoints *ptwX_norm)
@ ptwXY_interpolationLinLin
Definition ptwXY.h:37
ptwXYPoints * ptwXY_createFrom_Xs_Ys(statusMessageReporting *smr, ptwXY_interpolation interpolation, char const *interpolationString, double biSectionMax, double accuracy, int64_t primarySize, int64_t secondarySize, int64_t length, double const *Xs, double const *Ys, int userFlag)
Definition ptwXY_core.c:138
ptwXPoints * ptwXY_groupOneFunction(statusMessageReporting *smr, ptwXYPoints *ptwXY, ptwXPoints *groupBoundaries, ptwXY_group_normType normType, ptwXPoints *ptwX_norm)
ptwXPoints * ptwX_create(statusMessageReporting *smr, int64_t size, int64_t length, double const *xs)
Definition ptwX_core.c:54

◆ nodeWithValuesToDoubles()

std::string GIDI::nodeWithValuesToDoubles ( GUPI::WriteInfo & a_writeInfo,
std::string const & a_nodeName,
std::vector< double > const & a_values )

Create the XML list for xs, pdf or cdf for an Xs_pdf_cdf1d instance.

Parameters
a_writeInfo[in/out] Instance containing incremental indentation and other information and stores the appended lines.
a_nodeName[in] The name of the node (e.g., "xs" );
a_values[in] The list of doubles to wrap.
Returns
A std::string instance.

Definition at line 391 of file GIDI_misc.cc.

391 {
392
393 std::string xml = a_writeInfo.nodeStarter( "", a_nodeName );
394 std::string sep( "" );
395
396 xml += a_writeInfo.nodeStarter( "", GIDI_valuesChars );
397 for( std::size_t i1 = 0; i1 < a_values.size( ); ++i1 ) {
398 xml += sep + LUPI::Misc::doubleToShortestString( a_values[i1] );
399 if( i1 == 0 ) sep = " ";
400 }
401 xml += a_writeInfo.nodeEnder( GIDI_valuesChars );
402 xml += a_writeInfo.nodeEnder( a_nodeName );
403
404 return( xml );
405}
std::string nodeEnder(std::string const &a_moniker)
Definition GUPI.hpp:64

Referenced by GIDI::Functions::Xs_pdf_cdf1d::toXMLList_func().

◆ operator<<()

std::ostream & GIDI::operator<< ( std::ostream & a_os,
PhysicalQuantity const & a_physicalQuantity )

Writes the information of a_physicalQuantity to a_os.

Parameters
a_os[out] The stream to write to.
a_physicalQuantity[in] The PhysicalQuantity whose information is written.

Definition at line 93 of file GIDI_physicalQuantity.cc.

93 {
94
95 a_os << a_physicalQuantity.value( ) << " " << a_physicalQuantity.unit( );
96
97 return( a_os );
98}

◆ parseACE_URR_probabilityTables() [1/2]

Form * GIDI::parseACE_URR_probabilityTables ( Construction::Settings const & a_construction,
Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
LUPI_maybeUnused PoPI::Database const & a_pops,
LUPI_maybeUnused PoPI::Database const & a_internalPoPs,
std::string const & a_name,
LUPI_maybeUnused Styles::Suite const * a_styles )

This function parses a probabilityTable child node of a probabilityTables node.

Parameters
a_construction[in] Used to pass user options for parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_pops[in] A PoPs Database instance used to get particle indices and possibly other particle information.
a_internalPoPs[in] The internal PoPI::Database instance used to get particle indices and possibly other particle information. This is the <PoPs> node under the <reactionSuite> node.
a_name[in] The moniker for the node to be parsed.
a_styles[in] A pointer to the <styles> node.
Returns
The parsed and constructed GIDI::Function1d instance.

Definition at line 701 of file GIDI_parseSuites.cc.

702 {
703
704 if( a_name != GIDI_ACE_URR_probabilityTableChars ) throw Exception( std::string( "Invalid " ) + GIDI_ACE_URR_probabilityTablesChars " child node of moniker " + a_name );
705
706 return( new ACE_URR::ProbabilityTable( a_construction, a_node, a_setupInfo, a_parent ) );
707}
#define GIDI_ACE_URR_probabilityTableChars
Definition GIDI.hpp:187
#define GIDI_ACE_URR_probabilityTablesChars
Definition GIDI.hpp:186

◆ parseACE_URR_probabilityTables() [2/2]

Form * GIDI::parseACE_URR_probabilityTables ( Construction::Settings const & a_construction,
Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pops,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
Styles::Suite const * a_styles )

◆ parseAvailableSuite() [1/2]

Form * GIDI::parseAvailableSuite ( Construction::Settings const & a_construction,
Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
LUPI_maybeUnused PoPI::Database const & a_pops,
LUPI_maybeUnused PoPI::Database const & a_internalPoPs,
std::string const & a_name,
LUPI_maybeUnused Styles::Suite const * a_styles )

Function that parses a node under an <availableEnergy> or <availableMomentum> node. Called from a Suite::parse instance.

Parameters
a_construction[in] Used to pass user options for parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_pops[in] A PoPs Database instance used to get particle indices and possibly other particle information.
a_internalPoPs[in] The internal PoPI::Database instance used to get particle indices and possibly other particle information. This is the <PoPs> node under the <reactionSuite> node.
a_name[in] The moniker for the node to be parsed.
a_styles[in] A pointer to the <styles> node.
Returns
The parsed and constructed GIDI::Function1d instance.

Definition at line 474 of file GIDI_parseSuites.cc.

475 {
476
477 if( a_construction.parseMode( ) == Construction::ParseMode::outline ) return( nullptr );
478 if( ( a_construction.parseMode( ) == Construction::ParseMode::multiGroupOnly ) && ( a_name != GIDI_gridded1dChars ) ) return( nullptr );
479
480 return( data1dParse( a_construction, a_node, a_setupInfo, a_parent ) );
481}

◆ parseAvailableSuite() [2/2]

Form * GIDI::parseAvailableSuite ( Construction::Settings const & a_construction,
Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pops,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
Styles::Suite const * a_styles )

◆ parseAverageEnergySuite() [1/2]

Form * GIDI::parseAverageEnergySuite ( Construction::Settings const & a_construction,
Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
LUPI_maybeUnused PoPI::Database const & a_pops,
LUPI_maybeUnused PoPI::Database const & a_internalPoPs,
std::string const & a_name,
LUPI_maybeUnused Styles::Suite const * a_styles )

Function that parses a node under an <averageEnergy> node. Called from a Suite::parse instance.

Parameters
a_construction[in] Used to pass user options for parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_pops[in] A PoPs Database instance used to get particle indices and possibly other particle information.
a_internalPoPs[in] The internal PoPI::Database instance used to get particle indices and possibly other particle information. This is the <PoPs> node under the <reactionSuite> node.
a_name[in] The moniker for the node to be parsed.
a_styles[in] A pointer to the <styles> node.
Returns
The parsed and constructed GIDI::Function1d instance.

Definition at line 651 of file GIDI_parseSuites.cc.

652 {
653
654 if( a_construction.parseMode( ) == Construction::ParseMode::outline ) return( nullptr );
655 if( ( a_construction.parseMode( ) == Construction::ParseMode::multiGroupOnly ) && ( a_name != GIDI_gridded1dChars ) ) return( nullptr );
656
657 return( data1dParse( a_construction, a_node, a_setupInfo, a_parent ) );
658}

◆ parseAverageEnergySuite() [2/2]

Form * GIDI::parseAverageEnergySuite ( Construction::Settings const & a_construction,
Suite * parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pop,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
Styles::Suite const * a_styles )

Referenced by GIDI::Product::Product().

◆ parseAverageMomentumSuite() [1/2]

Form * GIDI::parseAverageMomentumSuite ( Construction::Settings const & a_construction,
Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
LUPI_maybeUnused PoPI::Database const & a_pops,
LUPI_maybeUnused PoPI::Database const & a_internalPoPs,
std::string const & a_name,
LUPI_maybeUnused Styles::Suite const * a_styles )

Function that parses a node under an <averageMomentum> node. Called from a Suite::parse instance.

Parameters
a_construction[in] Used to pass user options for parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_pops[in] A PoPs Database instance used to get particle indices and possibly other particle information.
a_internalPoPs[in] The internal PoPI::Database instance used to get particle indices and possibly other particle information. This is the <PoPs> node under the <reactionSuite> node.
a_name[in] The moniker for the node to be parsed.
a_styles[in] A pointer to the <styles> node.
Returns
The parsed and constructed GIDI::Function1d instance.

Definition at line 676 of file GIDI_parseSuites.cc.

677 {
678
679 if( a_construction.parseMode( ) == Construction::ParseMode::outline ) return( nullptr );
680 if( ( a_construction.parseMode( ) == Construction::ParseMode::multiGroupOnly ) && ( a_name != GIDI_gridded1dChars ) ) return( nullptr );
681
682 return( data1dParse( a_construction, a_node, a_setupInfo, a_parent ) );
683}

◆ parseAverageMomentumSuite() [2/2]

Form * GIDI::parseAverageMomentumSuite ( Construction::Settings const & a_construction,
Suite * parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pop,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
Styles::Suite const * a_styles )

Referenced by GIDI::Product::Product().

◆ parseColumnHeaders() [1/2]

Form * GIDI::parseColumnHeaders ( Construction::Settings const & a_construction,
Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
LUPI_maybeUnused PoPI::Database const & a_pops,
LUPI_maybeUnused PoPI::Database const & a_internalPoPs,
std::string const & a_name,
LUPI_maybeUnused Styles::Suite const * a_styles )

This function parses a column child node of a columnHeaders node.

Parameters
a_construction[in] Used to pass user options for parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_pops[in] A PoPs Database instance used to get particle indices and possibly other particle information.
a_internalPoPs[in] The internal PoPI::Database instance used to get particle indices and possibly other particle information. This is the <PoPs> node under the <reactionSuite> node.
a_name[in] The moniker for the node to be parsed.
a_styles[in] A pointer to the <styles> node.
Returns
The parsed and constructed GIDI::Function1d instance.

Definition at line 725 of file GIDI_parseSuites.cc.

726 {
727
728 if( a_name != GIDI_columnChars ) throw Exception( std::string( "Invalid " ) + GIDI_columnHeadersChars + " child node of moniker " + a_name );
729
730 Table::Column *column = new Table::Column( a_construction, a_node, a_setupInfo, a_parent );
731 column->setKeyName( GIDI_indexChars );
732
733 return column;
734}
#define GIDI_columnChars
Definition GIDI.hpp:194
#define GIDI_columnHeadersChars
Definition GIDI.hpp:193
#define GIDI_indexChars
Definition GIDI.hpp:437

◆ parseColumnHeaders() [2/2]

Form * GIDI::parseColumnHeaders ( Construction::Settings const & a_construction,
Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pops,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
Styles::Suite const * a_styles )

◆ parseCrossSectionSuite() [1/2]

Form * GIDI::parseCrossSectionSuite ( Construction::Settings const & a_construction,
Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
LUPI_maybeUnused PoPI::Database const & a_pops,
LUPI_maybeUnused PoPI::Database const & a_internalPoPs,
std::string const & a_name,
LUPI_maybeUnused Styles::Suite const * a_styles )

Function that parses a node under the <crossSection> node. Called from a Suite::parse instance.

Parameters
a_construction[in] Used to pass user options for parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_pops[in] A PoPs Database instance used to get particle indices and possibly other particle information.
a_internalPoPs[in] The internal PoPI::Database instance used to get particle indices and possibly other particle information. This is the <PoPs> node under the <reactionSuite> node.
a_name[in] The moniker for the node to be parsed.
a_styles[in] A pointer to the <styles> node.
Returns
The parsed and constructed GIDI::Form or nullptr if the node is not supported.

Definition at line 369 of file GIDI_parseSuites.cc.

370 {
371
372 if( a_construction.parseMode( ) == Construction::ParseMode::outline ) return( nullptr );
373 if( ( a_construction.parseMode( ) == Construction::ParseMode::multiGroupOnly ) && ( a_name != GIDI_gridded1dChars ) ) return( nullptr );
374 if( ( a_construction.parseMode( ) == Construction::ParseMode::MonteCarloContinuousEnergy ) && ( a_name != GIDI_Ys1dChars ) ) return( nullptr );
375
376// Form not parsed is CoulombPlusNuclearElastic.
377 Form *form = nullptr;
378
379 if( a_name == GIDI_resonancesWithBackgroundChars ) {
380 return( new Functions::ResonancesWithBackground1d( a_construction, a_node, a_setupInfo, a_parent ) ); }
381 else if( a_name == GIDI_TNSL1dChars ) {
382 form = new Functions::ThermalNeutronScatteringLaw1d( a_construction, a_node, a_setupInfo, a_parent ); }
383 else if( a_name == GIDI_URR_probabilityTables1dChars ) {
384 form = new Functions::URR_probabilityTables1d( a_construction, a_node, a_setupInfo, a_parent ); }
385 else if( a_name == GIDI_CoulombPlusNuclearElasticChars ) {
386 }
387 else {
388 form = data1dParse( a_construction, a_node, a_setupInfo, a_parent );
389 }
390
391 return( form );
392}
#define GIDI_TNSL1dChars
Definition GIDI.hpp:297
#define GIDI_resonancesWithBackgroundChars
Definition GIDI.hpp:368
#define GIDI_URR_probabilityTables1dChars
Definition GIDI.hpp:379
#define GIDI_CoulombPlusNuclearElasticChars
Definition GIDI.hpp:375

◆ parseCrossSectionSuite() [2/2]

Form * GIDI::parseCrossSectionSuite ( Construction::Settings const & a_construction,
Suite * parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pop,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
Styles::Suite const * a_styles )

◆ parseDelayedNeutronsSuite()

Form * GIDI::parseDelayedNeutronsSuite ( Construction::Settings const & a_construction,
Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pops,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
Styles::Suite const * a_styles )

Function that parses a node under the <DelayedNeutrons> node. Called from a Suite::parse instance.

Parameters
a_construction[in] Used to pass user options for parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_pops[in] A PoPs Database instance used to get particle indices and possibly other particle information.
a_internalPoPs[in] The internal PoPI::Database instance used to get particle indices and possibly other particle information. This is the <PoPs> node under the <reactionSuite> node.
a_name[in] The moniker for the node to be parsed.
a_styles[in] A pointer to the <styles> node.
Returns
The parsed and constructed GIDI::Form or nullptr if the node is not supported.

Definition at line 409 of file GIDI_parseSuites.cc.

410 {
411
412 if( a_name != GIDI_delayedNeutronChars ) throw Exception( std::string( "Invalid " ) + GIDI_delayedNeutronsChars + " child node of moniker " + a_name );
413 return( new DelayedNeutron( a_construction, a_node, a_setupInfo, a_pops, a_internalPoPs, a_parent, a_styles ) );
414}
#define GIDI_delayedNeutronsChars
Definition GIDI.hpp:230
#define GIDI_delayedNeutronChars
Definition GIDI.hpp:231

Referenced by GIDI::FissionFragmentData::FissionFragmentData().

◆ parseDistributionSuite() [1/2]

Form * GIDI::parseDistributionSuite ( Construction::Settings const & a_construction,
Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
LUPI_maybeUnused PoPI::Database const & a_pops,
LUPI_maybeUnused PoPI::Database const & a_internalPoPs,
std::string const & a_name,
LUPI_maybeUnused Styles::Suite const * a_styles )

Function that parses a node under a <distribution> node. Called from a Suite::parse instance.

Parameters
a_construction[in] Used to pass user options for parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_pops[in] A PoPs Database instance used to get particle indices and possibly other particle information.
a_internalPoPs[in] The internal PoPI::Database instance used to get particle indices and possibly other particle information. This is the <PoPs> node under the <reactionSuite> node.
a_name[in] The moniker for the node to be parsed.
a_styles[in] A pointer to the <styles> node.
Returns
The parsed and constructed GIDI::Form or nullptr if the node is not supported.

Definition at line 579 of file GIDI_parseSuites.cc.

580 {
581
582 if( a_construction.parseMode( ) == Construction::ParseMode::outline ) return( nullptr );
583 if( a_name == GIDI_multiGroup3dChars ) {
584 if( ( a_construction.parseMode( ) == Construction::ParseMode::MonteCarloContinuousEnergy ) ||
585 ( a_construction.parseMode( ) == Construction::ParseMode::excludeProductMatrices ) ) return( nullptr ); }
586 else {
587 if( a_construction.parseMode( ) == Construction::ParseMode::multiGroupOnly ) return( nullptr );
588 }
589
590// Distributions not parsed are GIDI_LLNLLegendreChars.
591 Form *form = nullptr;
592
593 if( a_name == GIDI_multiGroup3dChars ) {
594 form = new Distributions::MultiGroup3d( a_construction, a_node, a_setupInfo, a_parent ); }
595 else if( a_name == GIDI_angularTwoBodyChars ) {
596 form = new Distributions::AngularTwoBody( a_construction, a_node, a_setupInfo, a_parent ); }
597 else if( a_name == GIDI_uncorrelatedChars ) {
598 form = new Distributions::Uncorrelated( a_construction, a_node, a_setupInfo, a_parent ); }
599 else if( a_name == GIDI_KalbachMannChars ) {
600 form = new Distributions::KalbachMann( a_construction, a_node, a_setupInfo, a_parent ); }
601 else if( a_name == GIDI_energyAngularChars ) {
602 form = new Distributions::EnergyAngular( a_construction, a_node, a_setupInfo, a_parent ); }
603 else if( a_name == GIDI_energyAngularMCChars ) {
604 form = new Distributions::EnergyAngularMC( a_construction, a_node, a_setupInfo, a_parent ); }
605 else if( a_name == GIDI_angularEnergyChars ) {
606 form = new Distributions::AngularEnergy( a_construction, a_node, a_setupInfo, a_parent ); }
607 else if( a_name == GIDI_angularEnergyMCChars ) {
608 form = new Distributions::AngularEnergyMC( a_construction, a_node, a_setupInfo, a_parent ); }
609 else if( a_name == GIDI_LLNLAngularEnergyChars ) {
610 form = new Distributions::LLNLAngularEnergy( a_construction, a_node, a_setupInfo, a_parent ); }
611 else if( a_name == GIDI_coherentPhotonScatteringChars ) {
612 form = new Distributions::CoherentPhotoAtomicScattering( a_construction, a_node, a_setupInfo, a_parent ); }
613 else if( a_name == GIDI_incoherentPhotonScatteringChars ) {
614 form = new Distributions::IncoherentPhotoAtomicScattering( a_construction, a_node, a_setupInfo, a_parent ); }
616 form = new Distributions::IncoherentBoundToFreePhotoAtomicScattering( a_construction, a_node, a_setupInfo, a_parent ); }
617 else if( a_name == GIDI_thermalNeutronScatteringLawChars ) {
618 form = new Distributions::ThermalNeutronScatteringLaw( a_construction, a_node, a_setupInfo, a_parent ); }
619 else if( a_name == GIDI_branching3dChars ) {
620 form = new Distributions::Branching3d( a_construction, a_node, a_setupInfo, a_parent ); }
621 else if( a_name == GIDI_referenceChars ) {
622 form = new Distributions::Reference3d( a_construction, a_node, a_setupInfo, a_parent ); }
623 else if( a_name == GIDI_unspecifiedChars ) {
624 form = new Distributions::Unspecified( a_construction, a_node, a_setupInfo, a_parent ); }
625 else if( a_name == GIDI_CoulombPlusNuclearElasticChars ) {
626 form = new Distributions::CoulombPlusNuclearElastic( a_construction, a_node, a_setupInfo, a_parent ); }
627 else if( a_name == GIDI_LLNLLegendreChars ) {
628 form = new Distributions::LLNLLegendre( a_construction, a_node, a_setupInfo, a_parent ); }
629 else {
630 std::cout << "parseDistributionSuite: Ignoring unsupported distribution " << a_node.name( ) << std::endl;
631 }
632
633 return( form );
634}
#define GIDI_uncorrelatedChars
Definition GIDI.hpp:344
#define GIDI_coherentPhotonScatteringChars
Definition GIDI.hpp:355
#define GIDI_LLNLLegendreChars
Definition GIDI.hpp:380
#define GIDI_energyAngularMCChars
Definition GIDI.hpp:349
#define GIDI_incoherentBoundToFreePhotonScatteringChars
Definition GIDI.hpp:357
#define GIDI_branching3dChars
Definition GIDI.hpp:362
#define GIDI_energyAngularChars
Definition GIDI.hpp:348
#define GIDI_angularEnergyMCChars
Definition GIDI.hpp:351
#define GIDI_LLNLAngularEnergyChars
Definition GIDI.hpp:352
#define GIDI_multiGroup3dChars
Definition GIDI.hpp:342
#define GIDI_angularEnergyChars
Definition GIDI.hpp:350
#define GIDI_thermalNeutronScatteringLawChars
Definition GIDI.hpp:361
#define GIDI_incoherentPhotonScatteringChars
Definition GIDI.hpp:356
#define GIDI_KalbachMannChars
Definition GIDI.hpp:347
#define GIDI_angularTwoBodyChars
Definition GIDI.hpp:343

◆ parseDistributionSuite() [2/2]

Form * GIDI::parseDistributionSuite ( Construction::Settings const & a_construction,
Suite * parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pop,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
Styles::Suite const * a_styles )

Referenced by GIDI::Product::Product().

◆ parseDoubleDifferentialCrossSectionSuite() [1/2]

Form * GIDI::parseDoubleDifferentialCrossSectionSuite ( Construction::Settings const & a_construction,
Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pops,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
LUPI_maybeUnused Styles::Suite const * a_styles )

Function that parses a node under the <doubleDifferentialCrossSection> node. Called from a Suite::parse instance.

Parameters
a_construction[in] Used to pass user options for parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_pops[in] A PoPs Database instance used to get particle indices and possibly other particle information.
a_internalPoPs[in] The internal PoPI::Database instance used to get particle indices and possibly other particle information. This is the <PoPs> node under the <reactionSuite> node.
a_name[in] The moniker for the node to be parsed.
a_styles[in] A pointer to the <styles> node.
Returns
The parsed and constructed GIDI::Form or nullptr if the node is not supported.

Definition at line 303 of file GIDI_parseSuites.cc.

305 {
306
307 if( a_construction.parseMode( ) == Construction::ParseMode::outline ) return( nullptr );
308 if( a_construction.parseMode( ) == Construction::ParseMode::multiGroupOnly ) return( nullptr );
309
310 Form *form = nullptr;
311
312 if( a_name == GIDI_coherentPhotonScatteringChars ) {
313 form = new DoubleDifferentialCrossSection::CoherentPhotoAtomicScattering( a_construction, a_node, a_setupInfo, a_pops, a_internalPoPs, a_parent ); }
314 else if( a_name == GIDI_incoherentPhotonScatteringChars ) {
315 form = new DoubleDifferentialCrossSection::IncoherentPhotoAtomicScattering( a_construction, a_node, a_setupInfo, a_pops, a_internalPoPs, a_parent ); }
317 form = new DoubleDifferentialCrossSection::IncoherentBoundToFreePhotoAtomicScattering( a_construction, a_node, a_setupInfo, a_pops, a_internalPoPs, a_parent ); }
318 else if( a_name == GIDI_TNSL_coherentElasticChars ) {
319 form = new DoubleDifferentialCrossSection::n_ThermalNeutronScatteringLaw::CoherentElastic( a_construction, a_node, a_setupInfo, a_pops, a_internalPoPs, a_parent ); }
320 else if( a_name == GIDI_TNSL_incoherentElasticChars ) {
321 form = new DoubleDifferentialCrossSection::n_ThermalNeutronScatteringLaw::IncoherentElastic( a_construction, a_node, a_setupInfo, a_pops, a_internalPoPs, a_parent ); }
322 else if( a_name == GIDI_TNSL_incoherentInelasticChars ) {
323 form = new DoubleDifferentialCrossSection::n_ThermalNeutronScatteringLaw::IncoherentInelastic( a_construction, a_node, a_setupInfo, a_pops, a_internalPoPs, a_parent ); }
324 else if( a_name == GIDI_CoulombPlusNuclearElasticChars ) {
325 }
326 else {
327 std::cout << "parseDoubleDifferentialCrossSectionSuite: Ignoring unsupported Form '" << a_name << "'." << std::endl;
328 }
329
330 return( form );
331}
#define GIDI_TNSL_incoherentElasticChars
Definition GIDI.hpp:359
#define GIDI_TNSL_incoherentInelasticChars
Definition GIDI.hpp:360
#define GIDI_TNSL_coherentElasticChars
Definition GIDI.hpp:358

◆ parseDoubleDifferentialCrossSectionSuite() [2/2]

Form * GIDI::parseDoubleDifferentialCrossSectionSuite ( Construction::Settings const & a_construction,
Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pops,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
Styles::Suite const * a_styles )

◆ parseExternalFilesSuite() [1/2]

Form * GIDI::parseExternalFilesSuite ( Construction::Settings const & a_construction,
Suite * parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pop,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
Styles::Suite const * a_styles )

◆ parseExternalFilesSuite() [2/2]

Form * GIDI::parseExternalFilesSuite ( LUPI_maybeUnused Construction::Settings const & a_construction,
GIDI::Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
LUPI_maybeUnused PoPI::Database const & a_pops,
LUPI_maybeUnused PoPI::Database const & a_internalPoPs,
std::string const & a_name,
LUPI_maybeUnused Styles::Suite const * a_styles )

Function that parses a <style> node. Called from a Suite::parse instance.

Parameters
a_construction[in] Used to pass user options for parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_pops[in] A PoPs Database instance used to get particle indices and possibly other particle information.
a_internalPoPs[in] The internal PoPI::Database instance used to get particle indices and possibly other particle information. This is the <PoPs> node under the <reactionSuite> node.
a_name[in] The moniker for the node to be parsed.
a_styles[in] A pointer to the <styles> node.
Returns
The parsed and constructed GIDI::Form or nullptr if the node is not supported.

Definition at line 32 of file GIDI_parseSuites.cc.

33 {
34
35 Form *form = nullptr;
36
37 if( a_name == GIDI_externalFileChars ) {
38 form = new ExternalFile( a_node, a_setupInfo, a_parent ); }
39 else {
40 std::cout << "parseExternalFilesSuite: Ignoring unsupported externalFile = '" << a_name << "'." << std::endl;
41 }
42
43 return( form );
44}
#define GIDI_externalFileChars
Definition GIDI.hpp:173

◆ parseFissionComponent()

Form * GIDI::parseFissionComponent ( Construction::Settings const & a_construction,
Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pops,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
Styles::Suite const * a_styles )

Function that parses an <orphanProduct> node. Called from a Suite::parse instance.

Parameters
a_construction[in] Used to pass user options for parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_pops[in] A PoPs Database instance used to get particle indices and possibly other particle information.
a_internalPoPs[in] The internal PoPI::Database instance used to get particle indices and possibly other particle information. This is the <PoPs> node under the <reactionSuite> node.
a_name[in] The moniker for the node to be parsed.
a_styles[in] A pointer to the <styles> node.
Returns
The parsed and constructed GIDI::Reaction instance.

Definition at line 190 of file GIDI_parseSuites.cc.

191 {
192
193 return( parseReactionType( GIDI_fissionComponentChars, a_construction, a_parent, a_node, a_setupInfo, a_pops, a_internalPoPs, a_name, a_styles ) );
194}
#define GIDI_fissionComponentChars
Definition GIDI.hpp:185
Form * parseReactionType(std::string const &a_moniker, Construction::Settings const &a_construction, Suite *a_parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pops, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)

◆ parseFissionEnergyReleasesSuite() [1/2]

Form * GIDI::parseFissionEnergyReleasesSuite ( Construction::Settings const & a_construction,
Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
LUPI_maybeUnused PoPI::Database const & a_pops,
LUPI_maybeUnused PoPI::Database const & a_internalPoPs,
std::string const & a_name,
LUPI_maybeUnused Styles::Suite const * a_styles )

Function that parses a node under the <FissionEnergyReleases> node. Called from a Suite::parse instance.

Parameters
a_construction[in] Used to pass user options for parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_pops[in] A PoPs Database instance used to get particle indices and possibly other particle information.
a_internalPoPs[in] The internal PoPI::Database instance used to get particle indices and possibly other particle information. This is the <PoPs> node under the <reactionSuite> node.
a_name[in] The moniker for the node to be parsed.
a_styles[in] A pointer to the <styles> node.
Returns
The parsed and constructed GIDI::Form or nullptr if the node is not supported.

Definition at line 431 of file GIDI_parseSuites.cc.

432 {
433
434 if( a_name != GIDI_fissionEnergyReleaseChars ) throw Exception( std::string( "Invalid " ) + GIDI_fissionEnergyReleasesChars " child node of moniker " + a_name );
435 return( new Functions::FissionEnergyRelease( a_construction, a_node, a_setupInfo, a_parent ) );
436}
#define GIDI_fissionEnergyReleasesChars
Definition GIDI.hpp:232
#define GIDI_fissionEnergyReleaseChars
Definition GIDI.hpp:233

◆ parseFissionEnergyReleasesSuite() [2/2]

Form * GIDI::parseFissionEnergyReleasesSuite ( Construction::Settings const & a_construction,
Suite * parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pop,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
Styles::Suite const * a_styles )

◆ parseFlattened1d()

int GIDI::parseFlattened1d ( Construction::Settings const & a_construction,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
Vector & a_data )

Function to parse a one-d flattened array.

Parameters
a_construction[in] Used to pass user options for parsing.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_data[out] An empty GIDI::Vector that is filled with the data.
Returns
0 if successfull and 1 otherwise.

Definition at line 209 of file GIDI_arrays.cc.

209 {
210
211 FlattenedArrayData arrayData( a_node, a_setupInfo, 1, a_construction.useSystem_strtod( ) );
212
213 std::size_t size = (std::size_t) arrayData.m_shape[0];
214 a_data.resize( size );
215
216 std::size_t n1 = 0, n2 = size;
217 for( std::size_t i1 = 0; i1 < arrayData.m_numberOfStarts; ++i1 ) {
218 std::size_t offset = (std::size_t) arrayData.m_starts[i1];
219 for( int32_t i2 = 0; i2 < arrayData.m_lengths[i1]; ++i2, ++n1, ++offset ) {
220 if( n1 >= arrayData.m_dValues.size( ) ) throw Exception( "Too many values in flattened array." );
221 if( offset >= n2 ) throw Exception( "requested size is too small." );
222 a_data[offset] = arrayData.m_dValues[n1];
223 }
224 }
225 return( 0 );
226}
G4ThreadLocal T * G4GeomSplitter< T >::offset
void resize(std::size_t a_number, double a_value=0.0)
Definition GIDI_data.hpp:80

Referenced by GIDI::Functions::Gridded1d::Gridded1d().

◆ parseFrame() [1/2]

Frame GIDI::parseFrame ( HAPI::Node const & a_node,
LUPI_maybeUnused SetupInfo & a_setupInfo,
std::string const & a_name )

This function returns an frame enum representing a HAPI::Node's attribute with name a_name.

Parameters
a_node[in] The HAPI::Node node whoses attribute named a_node is to be parsed to determine the frame.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_name[in] The name of the attribute to parse.
Returns
The frame enum representing the node's frame.

Definition at line 237 of file GIDI_misc.cc.

237 {
238
239 Frame frame = Frame::lab;
240 if( strcmp( a_node.attribute_as_string( a_name.c_str( ) ).c_str( ), GIDI_centerOfMassChars ) == 0 ) frame = Frame::centerOfMass;
241 return( frame );
242}
Frame
Definition GIDI.hpp:146

◆ parseFrame() [2/2]

Frame GIDI::parseFrame ( HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
std::string const & a_name )

◆ parseMultiplicitySuite() [1/2]

Form * GIDI::parseMultiplicitySuite ( Construction::Settings const & a_construction,
Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
LUPI_maybeUnused PoPI::Database const & a_pops,
LUPI_maybeUnused PoPI::Database const & a_internalPoPs,
std::string const & a_name,
LUPI_maybeUnused Styles::Suite const * a_styles )

Function that parses a node under a <multiplicity> node. Called from a Suite::parse instance.

Parameters
a_construction[in] Used to pass user options for parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_pops[in] A PoPs Database instance used to get particle indices and possibly other particle information.
a_internalPoPs[in] The internal PoPI::Database instance used to get particle indices and possibly other particle information. This is the <PoPs> node under the <reactionSuite> node.
a_name[in] The moniker for the node to be parsed.
a_styles[in] A pointer to the <styles> node.
Returns
The parsed and constructed GIDI::Function1d instance.

Definition at line 554 of file GIDI_parseSuites.cc.

555 {
556
557 if( a_construction.parseMode( ) == Construction::ParseMode::outline ) return( nullptr );
558
559 if( a_name == GIDI_branching1dChars ) return( new Functions::Branching1d( a_construction, a_node, a_setupInfo, a_parent ) );
560
561 return( data1dParse( a_construction, a_node, a_setupInfo, a_parent ) );
562}

◆ parseMultiplicitySuite() [2/2]

Form * GIDI::parseMultiplicitySuite ( Construction::Settings const & a_construction,
Suite * parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pop,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
Styles::Suite const * a_styles )

◆ parseOrphanProduct()

Form * GIDI::parseOrphanProduct ( Construction::Settings const & a_construction,
Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pops,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
Styles::Suite const * a_styles )

Function that parses an <orphanProduct> node. Called from a Suite::parse instance.

Parameters
a_construction[in] Used to pass user options for parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_pops[in] A PoPs Database instance used to get particle indices and possibly other particle information.
a_internalPoPs[in] The internal PoPI::Database instance used to get particle indices and possibly other particle information. This is the <PoPs> node under the <reactionSuite> node.
a_name[in] The moniker for the node to be parsed.
a_styles[in] A pointer to the <styles> node.
Returns
The parsed and constructed GIDI::Reaction instance.

Definition at line 169 of file GIDI_parseSuites.cc.

170 {
171
172 return( parseReactionType( GIDI_orphanProductChars, a_construction, a_parent, a_node, a_setupInfo, a_pops, a_internalPoPs, a_name, a_styles ) );
173}
#define GIDI_orphanProductChars
Definition GIDI.hpp:182

◆ parsePhysicalQuantitySuite() [1/2]

Form * GIDI::parsePhysicalQuantitySuite ( Construction::Settings const & a_construction,
Suite * parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pop,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
Styles::Suite const * a_styles )

◆ parsePhysicalQuantitySuite() [2/2]

Form * GIDI::parsePhysicalQuantitySuite ( LUPI_maybeUnused Construction::Settings const & a_construction,
LUPI_maybeUnused Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
LUPI_maybeUnused PoPI::Database const & a_pops,
LUPI_maybeUnused PoPI::Database const & a_internalPoPs,
LUPI_maybeUnused std::string const & a_name,
LUPI_maybeUnused Styles::Suite const * a_styles )

Function that parses a node under the <rate> node. Called from a Suite::parse instance.

Parameters
a_construction[in] Used to pass user options for parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_pops[in] A PoPs Database instance used to get particle indices and possibly other particle information.
a_internalPoPs[in] The internal PoPI::Database instance used to get particle indices and possibly other particle information. This is the <PoPs> node under the <reactionSuite> node.
a_name[in] The moniker for the node to be parsed.
a_styles[in] A pointer to the <styles> node.
Returns
The parsed and constructed GIDI::Form or nullptr if the node is not supported.

Definition at line 453 of file GIDI_parseSuites.cc.

454 {
455
456 return( new PhysicalQuantity( a_node, a_setupInfo ) );
457}

◆ parseProductSuite()

Form * GIDI::parseProductSuite ( Construction::Settings const & a_construction,
Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pops,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
Styles::Suite const * a_styles )

Function that parses a node under a <products> node. Called from a Suite::parse instance.

Parameters
a_construction[in] Used to pass user options for parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_pops[in] A PoPs Database instance used to get particle indices and possibly other particle information.
a_internalPoPs[in] The internal PoPI::Database instance used to get particle indices and possibly other particle information. This is the <PoPs> node under the <reactionSuite> node.
a_name[in] The moniker for the node to be parsed.
a_styles[in] A pointer to the <styles> node.
Returns
The parsed and constructed GIDI::Product instance.

Definition at line 525 of file GIDI_parseSuites.cc.

526 {
527
528 Form *form = nullptr;
529
530 if( a_name == GIDI_productChars ) {
531 form = new Product( a_construction, a_node, a_setupInfo, a_pops, a_internalPoPs, a_parent, a_styles ); }
532 else {
533 std::cout << "parseProductSuite: Ignoring unsupported element in products " << a_node.name( ) << std::endl;
534 }
535
536 return( form );
537}
#define GIDI_productChars
Definition GIDI.hpp:221

◆ parseQSuite() [1/2]

Form * GIDI::parseQSuite ( Construction::Settings const & a_construction,
Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
LUPI_maybeUnused PoPI::Database const & a_pops,
LUPI_maybeUnused PoPI::Database const & a_internalPoPs,
LUPI_maybeUnused std::string const & a_name,
LUPI_maybeUnused Styles::Suite const * a_styles )

Function that parses a node under a <Q> node. Called from a Suite::parse instance.

Parameters
a_construction[in] Used to pass user options for parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_pops[in] A PoPs Database instance used to get particle indices and possibly other particle information.
a_internalPoPs[in] The internal PoPI::Database instance used to get particle indices and possibly other particle information. This is the <PoPs> node under the <reactionSuite> node.
a_name[in] The moniker for the node to be parsed.
a_styles[in] A pointer to the <styles> node.
Returns
The parsed and constructed GIDI::Function1d instance.

Definition at line 498 of file GIDI_parseSuites.cc.

499 {
500
501 Form *form = nullptr;
502
503 if( a_construction.parseMode( ) == Construction::ParseMode::outline ) return( nullptr );
504
505 form = data1dParse( a_construction, a_node, a_setupInfo, a_parent );
506
507 return( form );
508}

◆ parseQSuite() [2/2]

Form * GIDI::parseQSuite ( Construction::Settings const & a_construction,
Suite * parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pop,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
Styles::Suite const * a_styles )

◆ parseReaction()

Form * GIDI::parseReaction ( Construction::Settings const & a_construction,
Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pops,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
Styles::Suite const * a_styles )

Function that parses a <reaction> node. Called from a Suite::parse instance.

Parameters
a_construction[in] Used to pass user options for parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_pops[in] A PoPs Database instance used to get particle indices and possibly other particle information.
a_internalPoPs[in] The internal PoPI::Database instance used to get particle indices and possibly other particle information. This is the <PoPs> node under the <reactionSuite> node.
a_name[in] The moniker for the node to be parsed.
a_styles[in] A pointer to the <styles> node.
Returns
The parsed and constructed GIDI::Reaction instance.

Definition at line 148 of file GIDI_parseSuites.cc.

149 {
150
151 return( parseReactionType( GIDI_reactionChars, a_construction, a_parent, a_node, a_setupInfo, a_pops, a_internalPoPs, a_name, a_styles ) );
152}
#define GIDI_reactionChars
Definition GIDI.hpp:180

◆ parseReactionType()

Form * GIDI::parseReactionType ( std::string const & a_moniker,
Construction::Settings const & a_construction,
Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pops,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
Styles::Suite const * a_styles )

Function that parses a <reaction> or an <orphanProduct> node. Called from a Suite::parse instance.

Parameters
a_moniker[in] The moniker for the form to parse.
a_construction[in] Used to pass user options for parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_pops[in] A PoPs Database instance used to get particle indices and possibly other particle information.
a_internalPoPs[in] The internal PoPI::Database instance used to get particle indices and possibly other particle information. This is the <PoPs> node under the <reactionSuite> node.
a_name[in] The moniker for the node to be parsed.
a_styles[in] A pointer to the <styles> node.
Returns
The parsed and constructed GIDI::Reaction instance.

Definition at line 212 of file GIDI_parseSuites.cc.

214 {
215
216 Form *form = nullptr;
217
218 if( a_name == a_moniker ) {
219 Protare const &protare( *static_cast<Protare const *>( a_parent->root( ) ) );
220 form = new Reaction( a_construction, a_node, a_setupInfo, a_pops, a_internalPoPs, protare, a_styles ); }
221 else { // This should never happend.
222 std::cout << "parseReactionType: Ignoring '" << a_moniker << "' unsupported form '" << a_name << "'." << std::endl;
223 }
224
225 return( form );
226}
Ancestry * root()

Referenced by parseFissionComponent(), parseOrphanProduct(), and parseReaction().

◆ parseScatteringAtom() [1/2]

Form * GIDI::parseScatteringAtom ( Construction::Settings const & a_construction,
LUPI_maybeUnused Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
LUPI_maybeUnused PoPI::Database const & a_pops,
LUPI_maybeUnused PoPI::Database const & a_internalPoPs,
LUPI_maybeUnused std::string const & a_name,
LUPI_maybeUnused Styles::Suite const * a_styles )

Function that parses a node under the <doubleDifferentialCrossSection> node. Called from a Suite::parse instance.

Parameters
a_construction[in] Used to pass user options for parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_pops[in] A PoPs Database instance used to get particle indices and possibly other particle information.
a_internalPoPs[in] The internal PoPI::Database instance used to get particle indices and possibly other particle information. This is the <PoPs> node under the <reactionSuite> node.
a_name[in] The moniker for the node to be parsed.
a_styles[in] A pointer to the <styles> node.
Returns
The parsed and constructed GIDI::Form or nullptr if the node is not supported.

Definition at line 348 of file GIDI_parseSuites.cc.

◆ parseScatteringAtom() [2/2]

Form * GIDI::parseScatteringAtom ( Construction::Settings const & a_construction,
Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pops,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
Styles::Suite const * a_styles )

◆ parseStylesSuite() [1/2]

Form * GIDI::parseStylesSuite ( Construction::Settings const & a_construction,
GIDI::Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pops,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
LUPI_maybeUnused Styles::Suite const * a_styles )

Function that parses a <style> node. Called from a Suite::parse instance.

Parameters
a_construction[in] Used to pass user options for parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_pops[in] A PoPs Database instance used to get particle indices and possibly other particle information.
a_internalPoPs[in] The internal PoPI::Database instance used to get particle indices and possibly other particle information. This is the <PoPs> node under the <reactionSuite> node.
a_name[in] The moniker for the node to be parsed.
a_styles[in] A pointer to the <styles> node.
Returns
The parsed and constructed GIDI::Form or nullptr if the node is not supported.

Definition at line 61 of file GIDI_parseSuites.cc.

62 {
63
64 Form *form = nullptr;
65
66// Styles not parsed are angularDistributionReconstructed.
67
68 if( a_name == GIDI_evaluatedStyleChars ) {
69 form = new Styles::Evaluated( a_node, a_setupInfo, a_parent ); }
70 else if( a_name == GIDI_crossSectionReconstructedStyleChars ) {
71 form = new Styles::CrossSectionReconstructed( a_node, a_setupInfo, a_parent ); }
73 form = new Styles::CoulombPlusNuclearElasticMuCutoff( a_node, a_setupInfo, a_parent ); }
74 else if( a_name == GIDI_realizationChars ) {
75 form = new Styles::Realization( a_node, a_setupInfo, a_parent ); }
76 else if( a_name == GIDI_averageProductDataStyleChars ) {
77 form = new Styles::AverageProductData( a_node, a_setupInfo, a_parent ); }
78 else if( a_name == GIDI_MonteCarlo_cdfStyleChars ) {
79 form = new Styles::MonteCarlo_cdf( a_node, a_setupInfo, a_parent ); }
80 else if( a_name == GIDI_multiGroupStyleChars ) {
81 form = new Styles::MultiGroup( a_construction, a_node, a_setupInfo, a_pops, a_internalPoPs, a_parent );
82 if( a_setupInfo.m_multiGroup == nullptr ) {
83 a_setupInfo.m_multiGroup = static_cast<Styles::MultiGroup *>( form ); }
84 else {
85 std::cout << "Multiple multiGroup style instances found which is not supported. Ignoring all but first instance." << std::endl;
86 } }
87 else if( a_name == GIDI_heatedStyleChars ) {
88 form = new Styles::Heated( a_node, a_setupInfo, a_parent ); }
89 else if( a_name == GIDI_heatedMultiGroupStyleChars ) {
90 form = new Styles::HeatedMultiGroup( a_construction, a_node, a_setupInfo, a_pops, a_parent ); }
91 else if( a_name == GIDI_SnElasticUpScatterStyleChars ) {
92 form = new Styles::SnElasticUpScatter( a_node, a_setupInfo, a_pops, a_parent ); }
93 else if( a_name == GIDI_griddedCrossSectionStyleChars ) {
94 form = new Styles::GriddedCrossSection( a_construction, a_node, a_setupInfo, a_pops, a_parent ); }
95 else if( a_name == GIDI_URR_probabilityTablesStyleChars ) {
96 form = new Styles::URR_probabilityTables( a_construction, a_node, a_setupInfo, a_pops, a_parent ); }
97 else {
98 std::cout << "parseStylesSuite: Ignoring unsupported style = '" << a_name << "'." << std::endl;
99 }
100
101 return( form );
102}
#define GIDI_multiGroupStyleChars
Definition GIDI.hpp:246
#define GIDI_griddedCrossSectionStyleChars
Definition GIDI.hpp:251
#define GIDI_CoulombPlusNuclearElasticMuCutoffStyleChars
Definition GIDI.hpp:243
#define GIDI_realizationChars
Definition GIDI.hpp:249
#define GIDI_URR_probabilityTablesStyleChars
Definition GIDI.hpp:252
#define GIDI_evaluatedStyleChars
Definition GIDI.hpp:240
#define GIDI_heatedMultiGroupStyleChars
Definition GIDI.hpp:253
#define GIDI_heatedStyleChars
Definition GIDI.hpp:250
#define GIDI_MonteCarlo_cdfStyleChars
Definition GIDI.hpp:245
#define GIDI_crossSectionReconstructedStyleChars
Definition GIDI.hpp:241
#define GIDI_SnElasticUpScatterStyleChars
Definition GIDI.hpp:254
#define GIDI_averageProductDataStyleChars
Definition GIDI.hpp:244
Styles::MultiGroup * m_multiGroup
Definition GIDI.hpp:600

◆ parseStylesSuite() [2/2]

Form * GIDI::parseStylesSuite ( Construction::Settings const & a_construction,
Suite * parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pop,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
Styles::Suite const * a_styles )

◆ parseSumsCrossSectionsSuite() [1/2]

Form * GIDI::parseSumsCrossSectionsSuite ( Construction::Settings const & a_construction,
LUPI_maybeUnused Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pops,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
LUPI_maybeUnused Styles::Suite const * a_styles )

Function that parses a <crossSectionSum> node. Called from a Suite::parse instance.

Parameters
a_construction[in] Used to pass user options for parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_pops[in] A PoPs Database instance used to get particle indices and possibly other particle information.
a_internalPoPs[in] The internal PoPI::Database instance used to get particle indices and possibly other particle information. This is the <PoPs> node under the <reactionSuite> node.
a_name[in] The moniker for the node to be parsed.
a_styles[in] A pointer to the <styles> node.
Returns
The parsed and constructed GIDI::CrossSectionSum instance.

Definition at line 243 of file GIDI_parseSuites.cc.

244 {
245
246 Form *form = nullptr;
247
248 if( a_name == GIDI_crossSectionSumChars ) {
249 form = new Sums::CrossSectionSum( a_construction, a_node, a_setupInfo, a_pops, a_internalPoPs ); }
250 else { // This should never happend.
251 std::cout << "parseSumsCrossSectionsSuite: Ignoring unsupported Form '" << a_name << "'." << std::endl;
252 }
253
254 return( form );
255}
#define GIDI_crossSectionSumChars
Definition GIDI.hpp:210

◆ parseSumsCrossSectionsSuite() [2/2]

Form * GIDI::parseSumsCrossSectionsSuite ( Construction::Settings const & a_construction,
Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pops,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
Styles::Suite const * a_styles )

Referenced by GIDI::Sums::Sums::parse().

◆ parseSumsMultiplicitiesSuite() [1/2]

Form * GIDI::parseSumsMultiplicitiesSuite ( Construction::Settings const & a_construction,
LUPI_maybeUnused Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pops,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
LUPI_maybeUnused Styles::Suite const * a_styles )

Function that parses a <multiplicitySum> node. Called from a Suite::parse instance.

Parameters
a_construction[in] Used to pass user options for parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_pops[in] A PoPs Database instance used to get particle indices and possibly other particle information.
a_internalPoPs[in] The internal PoPI::Database instance used to get particle indices and possibly other particle information. This is the <PoPs> node under the <reactionSuite> node.
a_name[in] The moniker for the node to be parsed.
a_styles[in] A pointer to the <styles> node.
Returns
The parsed and constructed GIDI::MultiplicitySum instance.

Definition at line 272 of file GIDI_parseSuites.cc.

273 {
274
275 Form *form = nullptr;
276
277 if( a_construction.parseMode( ) == Construction::ParseMode::outline ) return( nullptr );
278
279 if( a_name == GIDI_multiplicitySumChars ) {
280 form = new Sums::MultiplicitySum( a_construction, a_node, a_setupInfo, a_pops, a_internalPoPs ); }
281 else { // This should never happend.
282 std::cout << "parseSumsMultiplicitiesSuite: Ignoring unsupported Form '" << a_name << "'." << std::endl;
283 }
284
285 return( form );
286}
#define GIDI_multiplicitySumChars
Definition GIDI.hpp:212

◆ parseSumsMultiplicitiesSuite() [2/2]

Form * GIDI::parseSumsMultiplicitiesSuite ( Construction::Settings const & a_construction,
Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pops,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
Styles::Suite const * a_styles )

Referenced by GIDI::Sums::Sums::parse().

◆ parseTransportablesSuite() [1/2]

Form * GIDI::parseTransportablesSuite ( Construction::Settings const & a_construction,
Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pops,
LUPI_maybeUnused PoPI::Database const & a_internalPoPs,
std::string const & a_name,
LUPI_maybeUnused Styles::Suite const * a_styles )

Function that parses a <transportable> node. Called from a Suite::parse instance.

Parameters
a_construction[in] Used to pass user options for parsing.
a_parent[in] The parent GIDI::Suite that the returned Form will be added to.
a_node[in] The HAPI::Node to be parsed.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_pops[in] A PoPs Database instance used to get particle indices and possibly other particle information.
a_internalPoPs[in] The internal PoPI::Database instance used to get particle indices and possibly other particle information. This is the <PoPs> node under the <reactionSuite> node.
a_name[in] The moniker for the node to be parsed.
a_styles[in] A pointer to the <styles> node.
Returns
The parsed and constructed GIDI::Form or nullptr if the node is not supported.

Definition at line 119 of file GIDI_parseSuites.cc.

120 {
121
122 Form *form = nullptr;
123
124 if( a_name == GIDI_transportableChars ) {
125 form = new Transportable( a_construction, a_node, a_setupInfo, a_pops, a_parent ); }
126 else {
127 std::cout << "parseTransportablesSuite: Ignoring unsupported Form '" << a_name << "'." << std::endl;
128 }
129
130 return( form );
131}
#define GIDI_transportableChars
Definition GIDI.hpp:248

◆ parseTransportablesSuite() [2/2]

Form * GIDI::parseTransportablesSuite ( Construction::Settings const & a_construction,
Suite * a_parent,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pops,
PoPI::Database const & a_internalPoPs,
std::string const & a_name,
Styles::Suite const * a_styles )

◆ parseValuesOfDoubles() [1/3]

void GIDI::parseValuesOfDoubles ( Construction::Settings const & a_construction,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
nf_Buffer< double > & a_values )

This function converts the text of a HAPI::Node into a list of doubles.

Parameters
a_construction[in] Used to pass user options to the constructor.
a_node[in] The HAPI::Node node whose text is to be converted into a list of doubles.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_values[in] The list to fill with the converted values.

Definition at line 88 of file GIDI_misc.cc.

89 {
90
91 parseValuesOfDoubles( a_node, a_setupInfo, a_values, a_construction.useSystem_strtod( ) );
92}
void parseValuesOfDoubles(Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, nf_Buffer< double > &a_vector)
Definition GIDI_misc.cc:88

Referenced by GIDI::Array::Array::Array(), GIDI::FlattenedArrayData::FlattenedArrayData(), GIDI::Grid::Grid(), GIDI::Functions::Legendre1d::Legendre1d(), parseValuesOfDoubles(), GIDI::Functions::Polynomial1d::Polynomial1d(), GIDI::Functions::Xs_pdf_cdf1d::Xs_pdf_cdf1d(), GIDI::Functions::XYs1d::XYs1d(), and GIDI::Functions::Ys1d::Ys1d().

◆ parseValuesOfDoubles() [2/3]

void GIDI::parseValuesOfDoubles ( HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
nf_Buffer< double > & a_values,
LUPI_maybeUnused int a_useSystem_strtod )

This function converts the text of a HAPI::Node into a list of doubles.

Parameters
a_node[in] The HAPI::Node node whose text is to be converted into a list of doubles.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_values[in] The list to fill with the converted values.
a_useSystem_strtod[in] Flag passed to the function nfu_stringToListOfDoubles.

Definition at line 103 of file GIDI_misc.cc.

103 {
104
105 std::string href = a_node.attribute_as_string( GIDI_hrefChars );
106
107 if( href != "" ) {
108 std::size_t startIndex = startIndexAttribute( a_node );
109 std::size_t count = static_cast<std::size_t>( a_node.attribute_as_long( GIDI_countChars ) );
110 if( a_setupInfo.m_protare->dataManager( ) == nullptr )
111 throw Exception( "parseValuesOfDoubles: Cannot read from HDF5 file as GIDI+ was compiled without HDF5 support." );
112 a_setupInfo.m_protare->dataManager( )->getDoubles( a_values, startIndex, startIndex + count ); }
113 else {
114 HAPI::Data data = a_node.data( );
115 data.getDoubles( a_values ); // FIXME overload getDoubles() to take std::vector argument, avoid extra copy?
116 }
117/*
118 int64_t numberConverted = p1.size( );
119 a_values.resize( numberConverted );
120 for( int64_t i1 = 0; i1 < numberConverted; ++i1 ) a_values[i1] = p1[i1];
121*/
122}
#define GIDI_hrefChars
Definition GIDI.hpp:440
#define GIDI_countChars
Definition GIDI.hpp:455
HAPI::DataManager * dataManager()
Definition GIDI.hpp:4734
ProtareSingle * m_protare
Definition GIDI.hpp:597
virtual void getDoubles(nf_Buffer< double > &result, size_t startIndex, size_t endIndex)=0
void getDoubles(nf_Buffer< double > &buffer)
Definition HAPI_Data.cc:48

◆ parseValuesOfDoubles() [3/3]

void GIDI::parseValuesOfDoubles ( HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
nf_Buffer< double > & a_vector,
int a_useSystem_strtod )

◆ parseValuesOfInts() [1/3]

void GIDI::parseValuesOfInts ( Construction::Settings const & a_construction,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
std::vector< int > & a_vector )

◆ parseValuesOfInts() [2/3]

void GIDI::parseValuesOfInts ( HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
nf_Buffer< int > & a_values )

This function converts the text of a HAPI::Node into a list of ints.

Parameters
a_node[in] The HAPI::Node node whoses text is to be converted into a list of ints.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_values[in] The list to fill with the converted values.

Definition at line 146 of file GIDI_misc.cc.

146 {
147
148 std::string href = a_node.attribute_as_string( GIDI_hrefChars );
149
150 if( href != "" ) {
151 std::size_t startIndex = startIndexAttribute( a_node );
152 std::size_t count = static_cast<std::size_t>( a_node.attribute_as_long( GIDI_countChars ) );
153 if( a_setupInfo.m_protare->dataManager( ) == nullptr )
154 throw Exception( "parseValuesOfInts: Cannot read from HDF5 file as GIDI+ was compiled without HDF5 support." );
155 a_setupInfo.m_protare->dataManager( )->getInts( a_values, startIndex, startIndex + count ); }
156 else {
157 HAPI::Data data = a_node.data( );
158 data.getInts( a_values ); // FIXME overload getDoubles() to take std::vector argument, avoid extra copy?
159 }
160
161/*
162 int64_t numberConverted = p1.size( );
163 a_values.resize( numberConverted );
164 for( int64_t i1 = 0; i1 < numberConverted; ++i1 ) a_values[i1] = p1[i1];
165*/
166// a_values.swap( p1 );
167}
virtual void getInts(nf_Buffer< int > &result, size_t startIndex, size_t endIndex)=0
void getInts(nf_Buffer< int > &buffer)
Definition HAPI_Data.cc:55

◆ parseValuesOfInts() [3/3]

void GIDI::parseValuesOfInts ( LUPI_maybeUnused Construction::Settings const & a_construction,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
nf_Buffer< int > & a_values )

This function converts the text of a HAPI::Node into a list of ints.

Parameters
a_construction[in] Used to pass user options to the constructor.
a_node[in] The HAPI::Node node whose text is to be converted into a list of ints.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_values[in] The list to fill with the converted values.

Definition at line 133 of file GIDI_misc.cc.

133 {
134
135 parseValuesOfInts( a_node, a_setupInfo, a_values );
136}
void parseValuesOfInts(Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, std::vector< int > &a_vector)

◆ settingsFluxesFromFunction3d()

std::vector< Transporting::Flux > GIDI::settingsFluxesFromFunction3d ( Functions::Function3dForm const & a_function3d)

Convert a flux in the form of a Function3dForm into those needed by Settings methods. Currently only works for XYs3d which contains a list of XYs2d which each contain a list of Legendre instances.

Parameters
a_function3d[in] A Function3dForm instance.
Returns
The list of Transporting::Flux * instances.

Definition at line 439 of file GIDI_settings_flux.cc.

439 {
440
441 if( a_function3d.type( ) != FormType::XYs3d ) throw Exception( "Currently, only a 3d function of type XYs3d is supported." );
442
443 Functions::XYs3d const &xys3d = static_cast<Functions::XYs3d const &>( a_function3d );
444 std::vector<Functions::Function2dForm *> const function2ds = xys3d.function2ds( );
445 std::vector<Transporting::Flux> fluxes;
446
447 for( std::size_t i1 = 0; i1 < function2ds.size( ); ++i1 ) {
448 Functions::Function2dForm const &function2d = *function2ds[i1];
449
450 if( function2d.type( ) != FormType::XYs2d ) throw Exception( "Currently, only a 2d function of type XYs2d is supported for flux f(E,mu)." );
451
452 Functions::XYs2d const &xys2d = static_cast<Functions::XYs2d const &>( function2d );
453 std::vector<Functions::Function1dForm *> const &function1ds = xys2d.function1ds( );
454
455 Transporting::Flux flux( a_function3d.label( ), xys2d.outerDomainValue( ) );
456 std::size_t maxOrder = 0;
457 std::vector<double> energies;
458 std::vector< std::vector<double> > fluxMatrix;
459
460 for( std::size_t i2 = 0; i2 < function1ds.size( ); ++i2 ) {
461 Functions::Function1dForm const &function1d = *function1ds[i2];
462
463 if( function1d.type( ) != FormType::Legendre1d ) throw Exception( "Currently, only a 1d function of type Legendre1d is supported for flux f(mu)." );
464
465 Functions::Legendre1d const &legendre1d = static_cast<Functions::Legendre1d const &>( function1d );
466
467 energies.push_back( legendre1d.outerDomainValue( ) );
468 std::vector<double> &coefficients = const_cast< std::vector<double> &>( legendre1d.coefficients( ) );
469 if( maxOrder < coefficients.size( ) ) maxOrder = coefficients.size( );
470 fluxMatrix.push_back( coefficients );
471 }
472
473 for( std::size_t order = 0; order < maxOrder; ++order ) {
474 std::vector<double> energyFluxAtOrder;
475
476 for( std::size_t i2 = 0; i2 < function1ds.size( ); ++i2 ) {
477 energyFluxAtOrder.push_back( 0.0 );
478 if( order < fluxMatrix[i2].size( ) ) energyFluxAtOrder[i2] = fluxMatrix[i2][order];
479 }
480
481 Transporting::Flux_order fluxOrder( order, energies, energyFluxAtOrder );
482 flux.addFluxOrder( fluxOrder );
483 }
484
485 fluxes.push_back( flux );
486 }
487
488 return( fluxes );
489}
FormType type() const
Definition GIDI.hpp:667
double outerDomainValue() const
Definition GIDI.hpp:1010
std::vector< double > const & coefficients() const
Definition GIDI.hpp:1225
std::vector< Function1dForm * > const & function1ds() const
Definition GIDI.hpp:1560
std::vector< Function2dForm * > const & function2ds() const
Definition GIDI.hpp:1951

Referenced by GIDI::Transporting::Particle::Particle().

◆ size_t_ToString()

std::string GIDI::size_t_ToString ( std::size_t a_value)

Returns a string representation of std::size_t a_value.

Parameters
a_value[in] The std::size value to convert to a string.
Returns
A std::string instance.

Definition at line 428 of file GIDI_misc.cc.

428 {
429
430 return( LUPI::Misc::argumentsToString( "%zu", a_value ) );
431}

Referenced by doublesToXMLList(), and GIDI::Functions::Gridded1d::toXMLList_func().

◆ sortedListOfStrings()

std::vector< std::string > GIDI::sortedListOfStrings ( std::vector< std::string > const & a_strings,
bool a_orderIsAscending )

This function returns a sorted instance of the strings in a_strings.

Parameters
a_strings[in] The string to add to the returned std::vector<std::string> instance.
a_orderIsAscending[in] If true the strings are sorted in ascending order; otherwise, descending order.
Returns
A std::vector<std::string> instance.

Definition at line 353 of file GIDI_misc.cc.

353 {
354
355 std::vector<std::string> keys( a_strings );
356
357 std::sort( keys.begin( ), keys.end( ) );
358
359 if( a_orderIsAscending ) return( keys );
360
361 std::vector<std::string> keys2;
362
363 for( std::vector<std::string>::reverse_iterator iter = keys.rbegin( ); iter != keys.rend( ); ++iter ) keys2.push_back( *iter );
364 return( keys2 );
365}

Referenced by GIDI::Transporting::Particles::sortedIDs().

◆ transportCorrect() [1/2]

Matrix GIDI::transportCorrect ( Matrix const & a_matrix,
Vector const & a_transportCorrection )

Transport correct a Matrix.

Parameters
a_matrix[in] The Matrix to transport correct.
a_transportCorrection[in] The Vector that has the transport correction terms.
Returns
Returns the collapsed Matrix.

Definition at line 155 of file GIDI_collapse.cc.

155 {
156
157 std::size_t size = a_transportCorrection.size( );
158 Matrix corrected( a_matrix );
159
160 if( size == 0 ) return( corrected );
161 if( a_matrix.size( ) == 0 ) {
162 corrected = Matrix( size, size ); }
163 else {
164 if( size != a_matrix.size( ) ) throw Exception( "transportCorrect: matrix rows different than vector size." );
165 }
166
167 for( std::size_t index = 0; index < size; ++index ) corrected[index][index] -= a_transportCorrection[index];
168 return( corrected );
169}

◆ transportCorrect() [2/2]

Vector GIDI::transportCorrect ( Vector const & a_vector,
Vector const & a_transportCorrection )

Transport correct a vector.

Parameters
a_vector[in] The Vector to transport correct.
a_transportCorrection[in] The Vector that has the transport correction terms.
Returns
Returns the collapsed Matrix.

Definition at line 142 of file GIDI_collapse.cc.

142 {
143
144 return( a_vector - a_transportCorrection );
145}

◆ vector2GIDI_Ys1d()

Functions::Ys1d GIDI::vector2GIDI_Ys1d ( Axes const & a_axes,
Vector const & a_vector )

This function converts the values of a Vector into a Ys1d instance.

Parameters
a_axes[in] The Axes for the returned Ys1d instance.
a_vector[in] The Vector whoses values are converted into a Ys1d instance.
Returns
A Ys1d instance of the values.

Definition at line 288 of file GIDI_misc.cc.

288 {
289
290 std::size_t start = 0;
291 for( ; start < a_vector.size( ); ++start ) {
292 if( a_vector[start] != 0 ) break;
293 }
294
295 std::vector<double> ys;
296 Functions::Ys1d ys1d( a_axes, ptwXY_interpolationLinLin, start, ys );
297
298 for( std::size_t i1 = start; i1 < a_vector.size( ); ++i1 ) ys1d.push_back( a_vector[i1] );
299
300 return( ys1d );
301}

◆ vectorOfStrings()

std::vector< std::string > GIDI::vectorOfStrings ( std::string const & a_string)

This function returns an instance of std::vector<std::string> with only a_string as an item.

Parameters
a_string[in] The string to add to the returned std::vector<std::string> instance.
Returns
A std::vector<std::string> instance.

Definition at line 337 of file GIDI_misc.cc.

337 {
338 std::vector<std::string> vectorOfStrings1;
339
340 vectorOfStrings1.push_back( a_string );
341 return( vectorOfStrings1 );
342}