Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
GIDI_protareComposite.cc
Go to the documentation of this file.
1/*
2# <<BEGIN-copyright>>
3# Copyright 2019, Lawrence Livermore National Security, LLC.
4# This file is part of the gidiplus package (https://github.com/LLNL/gidiplus).
5# gidiplus is licensed under the MIT license (see https://opensource.org/licenses/MIT).
6# SPDX-License-Identifier: MIT
7# <<END-copyright>>
8*/
9
10#include <stdlib.h>
11#include <algorithm>
12
13#include "GIDI.hpp"
14
15namespace GIDI {
16
17/*! \class ProtareComposite
18 * Class to store a list of GNDS <**reactionSuite**> node.
19 */
20
21/* *********************************************************************************************************//**
22 * ProtareComposite constructor.
23 *
24 * @param a_construction [in] Used to pass user options to the constructor.
25 ***********************************************************************************************************/
26
28
29}
30
31/* *********************************************************************************************************//**
32 ******************************************************************/
33
35
36 for( std::vector<Protare *>::const_iterator iter = m_protares.begin( ); iter < m_protares.end( ); ++iter ) delete *iter;
37}
38
39/* *********************************************************************************************************//**
40 * Appends *a_protare* to the list of Protares.
41 *
42 * @param a_protare [in] The Protare to add to *this* instance.
43 ******************************************************************/
44
46
47 m_protares.push_back( a_protare );
48}
49
50/* *********************************************************************************************************//**
51 * Returns the GNDS format version for the (a_index+1)^th Protare.
52 *
53 * @param a_index [in] The index of the Protare whose format version is returned.
54 *
55 * @return The format version.
56 ******************************************************************/
57
58LUPI::FormatVersion const &ProtareComposite::formatVersion( std::size_t a_index ) const {
59
60 return( m_protares[a_index]->formatVersion( ) );
61}
62
63/* *********************************************************************************************************//**
64 * Returns the file name for the (a_index+1)^th Protare.
65 *
66 * @param a_index [in] The index of the Protare whose file name is returned.
67 *
68 * @return The file name.
69 ******************************************************************/
70
71std::string const &ProtareComposite::fileName( std::size_t a_index ) const {
72
73 return( m_protares[a_index]->fileName( ) );
74}
75
76/* *********************************************************************************************************//**
77 * Returns the real file name for the (a_index+1)^th Protare.
78 *
79 * @param a_index [in] The index of the Protare whose real file name is returned.
80 *
81 * @return The real file name.
82 ******************************************************************/
83
84std::string const &ProtareComposite::realFileName( std::size_t a_index ) const {
85
86 return( m_protares[a_index]->realFileName( ) );
87}
88
89/* *********************************************************************************************************//**
90 * Returns the list of libraries for the (a_index+1)^th contained Protare.
91 *
92 * @param a_index [in] The index of the Protare whose libraries are to be returned.
93 *
94 * @return The list of libraries.
95 ******************************************************************/
96
97std::vector<std::string> ProtareComposite::libraries( std::size_t a_index ) const {
98
99 return( m_protares[a_index]->libraries( ) );
100}
101
102/* *********************************************************************************************************//**
103 * Returns the evaluation for the (a_index+1)^th Protare.
104 *
105 * @param a_index [in] The index of the Protare whose evaluation is returned.
106 *
107 * @return The evaluation.
108 ******************************************************************/
109
110std::string const &ProtareComposite::evaluation( std::size_t a_index ) const {
111
112 return( m_protares[a_index]->evaluation( ) );
113}
114
115/* *********************************************************************************************************//**
116 * Returns the projectile frame for the (a_index+1)^th Protare.
117 *
118 * @param a_index [in] The index of the Protare whose projectile frame is returned.
119 *
120 * @return The projectile frame.
121 ******************************************************************/
122
123Frame ProtareComposite::projectileFrame( std::size_t a_index ) const {
124
125 return( m_protares[a_index]->projectileFrame( ) );
126}
127
128/* *********************************************************************************************************//**
129 * Returns the number of **ProtareSingle**s contained in *this*.
130 *
131 * @return Returns the number of contained **ProtareSingle**s..
132 ***********************************************************************************************************/
133
135
136 std::size_t number = 0;
137
138 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) number += m_protares[i1]->numberOfProtares( );
139
140 return( number );
141}
142
143/* *********************************************************************************************************//**
144 * Returns the pointer representing the (a_index - 1)th **ProtareSingle**.
145 *
146 * @param a_index [in] Index of the **ProtareSingle** to return.
147 *
148 * @return Pointer to the requested protare or nullptr if invalid *a_index*..
149 ***********************************************************************************************************/
150
152
153 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
154 std::size_t number = m_protares[i1]->numberOfProtares( );
155
156 if( number > a_index ) return( m_protares[i1]->protare( a_index ) );
157 a_index -= number;
158 }
159
160 return( nullptr );
161}
162
163/* *********************************************************************************************************//**
164 * Returns the pointer representing the (a_index - 1)th **ProtareSingle**.
165 *
166 * @param a_index [in] Index of the **ProtareSingle** to return.
167 *
168 * @return Pointer to the requested protare or nullptr if invalid *a_index*..
169 ***********************************************************************************************************/
170
171ProtareSingle const *ProtareComposite::protare( std::size_t a_index ) const {
172
173 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
174 std::size_t number = m_protares[i1]->numberOfProtares( );
175
176 if( number > a_index ) return( m_protares[i1]->protare( a_index ) );
177 a_index -= number;
178 }
179
180 return( nullptr );
181}
182
183/* *********************************************************************************************************//**
184 * Returns the number of LazyParsingHelperForms instantiated.
185 *
186 * @return The number of LazyParsingHelperForms instantiated.
187 ******************************************************************/
188
190
191 int numberOfLazyParsingHelperForms1 = 0;
192
193 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) numberOfLazyParsingHelperForms1 += m_protares[i1]->numberOfLazyParsingHelperForms( );
194
195 return( numberOfLazyParsingHelperForms1 );
196}
197
198/* *********************************************************************************************************//**
199 * Returns the number of instantiated LazyParsingHelperForms replaced with the appropriate form.
200 *
201 * @return The number of LazyParsingHelperForms replaced.
202 ******************************************************************/
203
205
206 int numberOfLazyParsingHelperFormsReplaced1 = 0;
207
208 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) numberOfLazyParsingHelperFormsReplaced1 += m_protares[i1]->numberOfLazyParsingHelperFormsReplaced( );
209
210 return( numberOfLazyParsingHelperFormsReplaced1 );
211}
212
213/* *********************************************************************************************************//**
214 * Returns a threshold factor for the projectile hitting the target.
215 *
216 * @return The threshold factor.
217 ******************************************************************/
218
220
221 return( m_protares[0]->thresholdFactor( ) );
222}
223
224/* *********************************************************************************************************//**
225 * Returns the Documentation_1_10::Suite from the first protare in *m_protares*.
226 *
227 * @return The Documentation_1_10::Suite.
228 ******************************************************************/
229
231
232 return( m_protares[0]->documentations( ) );
233}
234
235/* *********************************************************************************************************//**
236 * Returns the style with label *a_label* from the first Protare in *m_protares*.
237 *
238 * @param a_label [in] The label of the requested style.
239 * @return The style with label *a_label*.
240 ******************************************************************/
241
242Styles::Base &ProtareComposite::style( std::string const &a_label ) {
243
244 return( m_protares[0]->style( a_label ) );
245}
246
247/* *********************************************************************************************************//**
248 * Returns the Styles::Suite from the first Protare in *m_protares*.
249 *
250 * @return The Styles::Suite.
251 ******************************************************************/
252
254
255 return( m_protares[0]->styles( ) );
256}
257
258/* *********************************************************************************************************//**
259 * Returns the Styles::Suite from the first Protare in *m_protares*.
260 *
261 * @return The Styles::Suite.
262 ******************************************************************/
263
265
266 return( m_protares[0]->styles( ) );
267}
268
269/* *********************************************************************************************************//**
270 * Returns the intid for the requested particle or -1 if the particle is not in *m_protare* PoPs database.
271 *
272 * @param a_id [in] The GNDS PoPs id for particle whose intd is requested.
273 *
274 * @return C++ int for the requested particle or -1 if particle is not in PoPs.
275 ******************************************************************/
276
277int ProtareComposite::intid( std::string const &a_id ) const {
278
279 int intid1 = -1;
280
281 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
282 intid1 = m_protares[i1]->intid( a_id );
283 if( intid1 > -1 ) break;
284 }
285
286 return( intid1 );
287}
288
289/* *********************************************************************************************************//**
290 * Calls productIDs for each Protare contained in *this*.
291 *
292 * @param a_ids [in] The unique list of product indices.
293 * @param a_particles [in] The list of particles to be transported.
294 * @param a_transportablesOnly [in] If *true* only transportable particle ids are added to *a_ids*.
295 ******************************************************************/
296
297void ProtareComposite::productIDs( std::set<std::string> &a_ids, Transporting::Particles const &a_particles, bool a_transportablesOnly ) const {
298
299 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) m_protares[i1]->productIDs( a_ids, a_particles, a_transportablesOnly );
300}
301
302/* *********************************************************************************************************//**
303 * Determines the maximum Legredre order present in the multi-group transfer matrix for a give product for a give label.
304 * Loops over all contained Protares to determine the maximum Legredre order.
305 *
306 * @param a_smr [Out] If errors are not to be thrown, then the error is reported via this instance.
307 * @param a_settings [in] Specifies the requested label.
308 * @param a_temperatureInfo [in] Specifies the temperature and labels use to lookup the requested data.
309 * @param a_productID [in] The id of the requested product.
310 *
311 * @return The maximum Legredre order. If no transfer matrix data are present for the requested product, -1 is returned.
312 ***********************************************************************************************************/
313
315 Styles::TemperatureInfo const &a_temperatureInfo, std::string const &a_productID ) const {
316
317 int maximumLegendreOrder1 = -1;
318
319 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
320 int maximumLegendreOrder2 = m_protares[i1]->maximumLegendreOrder( a_smr, a_settings, a_temperatureInfo, a_productID );
321
322 if( maximumLegendreOrder2 > maximumLegendreOrder1 ) maximumLegendreOrder1 = maximumLegendreOrder2;
323 }
324
325 return( maximumLegendreOrder1 );
326}
327
328/* *********************************************************************************************************//**
329 * Returns a list of all process temperature data. For each temeprature, the labels for its
330 *
331 * + heated cross section data,
332 * + gridded cross section data,
333 * + multi-group data, and
334 * + multi-group upscatter data.
335 *
336 * are returned. If no data are present for a give data type (e.g., gridded cross section, multi-group upscatter), its label is an empty std::string.
337 *
338 * @return The list of temperatures and their labels via an Styles::TemperatureInfos instance. The Styles::TemperatureInfos class
339 * has many (if not all) the method of a std::vector.
340 ***********************************************************************************************************/
341
343
344 return( m_protares[0]->temperatures( ) );
345}
346
347/* *********************************************************************************************************//**
348 * Returns the number of reactions for all Protares contained in *this*.
349 *
350 * @return The total number of reactions.
351 ******************************************************************/
352
354
355 std::size_t numberOfReactions1 = 0;
356
357 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) numberOfReactions1 += m_protares[i1]->numberOfReactions( );
358
359 return( numberOfReactions1 );
360}
361
362/* *********************************************************************************************************//**
363 * Returns the (*a_index*+1)th reaction.
364 *
365 * @param a_index [in] The index of the requested reaction.
366 * @return The (*a_index*+1)th reaction.
367 ***********************************************************************************************************/
368
369Reaction *ProtareComposite::reaction( std::size_t a_index ) {
370
371 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
372 std::size_t numberOfReactions1 = m_protares[i1]->numberOfReactions( );
373
374 if( a_index < numberOfReactions1 ) return( m_protares[i1]->reaction( a_index ) );
375 a_index -= numberOfReactions1;
376 }
377
378 throw Exception( "ProtareComposite::reaction: index out of range" );
379}
380
381/* *********************************************************************************************************//**
382 * Returns the (*a_index*+1)th reaction.
383 *
384 * @param a_index [in] The index of the requested reaction.
385 * @return The (*a_index*+1)th reaction.
386 ***********************************************************************************************************/
387
388Reaction const *ProtareComposite::reaction( std::size_t a_index ) const {
389
390 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
391 std::size_t numberOfReactions1 = m_protares[i1]->numberOfReactions( );
392
393 if( a_index < numberOfReactions1 ) return( m_protares[i1]->reaction( a_index ) );
394 a_index -= numberOfReactions1;
395 }
396
397 throw Exception( "ProtareComposite::reaction: index out of range" );
398}
399
400/* *********************************************************************************************************//**
401 * Returns the (*a_index*+1)th reaction or **nullptr**. If the indexed reaction is deactivated or exlucded,
402 * a **nullptr** is returned.
403 *
404 * @param a_index [in] The index of the requested reaction.
405 * @param a_settings [in] Specifies the requested label.
406 * @param a_reactionsToExclude [in] A list of reaction indices that are to be ignored when calculating the cross section.
407 *
408 * @return The (*a_index*+1)th reaction or **nullptr**.
409 ***********************************************************************************************************/
410
411Reaction const *ProtareComposite::reaction( std::size_t a_index, Transporting::MG const &a_settings,
412 ExcludeReactionsSet const &a_reactionsToExclude ) const {
413
414 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
415 std::size_t numberOfReactions1 = m_protares[i1]->numberOfReactions( );
416
417 if( a_index < numberOfReactions1 ) return( m_protares[i1]->reaction( a_index, a_settings, a_reactionsToExclude ) );
418 a_index -= numberOfReactions1;
419 }
420
421 throw Exception( "ProtareComposite::reaction: index out of range" );
422}
423
424/* *********************************************************************************************************//**
425 * Returns the number of orphanProduct for all Protares contained in *this*.
426 *
427 * @return The total number of orphanProducts.
428 ******************************************************************/
429
431
432 std::size_t numberOfOrphanProducts1 = 0;
433
434 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) numberOfOrphanProducts1 += m_protares[i1]->numberOfOrphanProducts( );
435
436 return( numberOfOrphanProducts1 );
437}
438
439/* *********************************************************************************************************//**
440 * Returns the (*a_index*+1)th orphanProduct.
441 *
442 * @param a_index [in] The index of the requested orphanProduct.
443 * @return The (*a_index*+1)th orphanProduct.
444 ***********************************************************************************************************/
445
447
448 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
449 std::size_t numberOfOrphanProducts1 = m_protares[i1]->numberOfOrphanProducts( );
450
451 if( a_index < numberOfOrphanProducts1 ) return( m_protares[i1]->orphanProduct( numberOfOrphanProducts1 ) );
452 a_index -= numberOfOrphanProducts1;
453 }
454
455 throw Exception( "ProtareComposite::orphanProduct: index out of range" );
456}
457
458/* *********************************************************************************************************//**
459 * Returns the (*a_index*+1)th orphanProduct.
460 *
461 * @param a_index [in] The index of the requested orphanProduct.
462 * @return The (*a_index*+1)th orphanProduct.
463 ***********************************************************************************************************/
464
465Reaction const *ProtareComposite::orphanProduct( std::size_t a_index ) const {
466
467 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
468 std::size_t numberOfOrphanProducts1 = m_protares[i1]->numberOfOrphanProducts( );
469
470 if( a_index < numberOfOrphanProducts1 ) return( m_protares[i1]->orphanProduct( numberOfOrphanProducts1 ) );
471 a_index -= numberOfOrphanProducts1;
472 }
473
474 throw Exception( "ProtareComposite::orphanProduct: index out of range" );
475}
476
477/* *********************************************************************************************************//**
478 * Re-indexs the reactions in the reactions, orphanProducts and fissionComponents suites.
479 *
480 ***********************************************************************************************************/
481
483
484 std::size_t reactionOffset = 0;
485
486 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
487 m_protares[i1]->updateReactionIndices( reactionOffset );
488 reactionOffset += m_protares[i1]->numberOfReactions( );
489 }
490}
491
492/* *********************************************************************************************************//**
493 * Returns true if at least one reaction contains a fission channel.
494 *
495 * @return true if at least one reaction contains a fission channel and false otherwise.
496 ***********************************************************************************************************/
497
499
500 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
501
502 if( m_protares[i1]->hasFission( ) ) return( true );
503 }
504 return( false );
505}
506
507/* *********************************************************************************************************//**
508 * Returns **false* if protare has delayed fission neutrons for an active reaction and they are not complete; otherwise, returns **true**.
509 *
510 * @return bool
511 ***********************************************************************************************************/
512
514
515 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
516
517 if( !m_protares[i1]->isDelayedFissionNeutronComplete( ) ) return( true );
518 }
519
520 return( true );
521}
522
523/* *********************************************************************************************************//**
524 * Returns the multi-group boundaries for the requested label and product.
525 *
526 * @param a_settings [in] Specifies the requested label.
527 * @param a_temperatureInfo [in] Specifies the temperature and labels use to lookup the requested data.
528 * @param a_productID [in] ID for the requested product.
529 *
530 * @return List of multi-group boundaries.
531 ***********************************************************************************************************/
532
533std::vector<double> ProtareComposite::groupBoundaries( Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, std::string const &a_productID ) const {
534
535 return( m_protares[0]->groupBoundaries( a_settings, a_temperatureInfo, a_productID ) );
536}
537
538/* *********************************************************************************************************//**
539 * Returns the inverse speeds for the requested label. The label must be for a heated multi-group style.
540 *
541 * @param a_smr [Out] If errors are not to be thrown, then the error is reported via this instance.
542 * @param a_settings [in] Specifies the requested label.
543 * @param a_temperatureInfo [in] Specifies the temperature and labels use to lookup the requested data.
544 *
545 * @return List of inverse speeds.
546 ***********************************************************************************************************/
547
549 Styles::TemperatureInfo const &a_temperatureInfo ) const {
550
551 return( m_protares[0]->multiGroupInverseSpeed( a_smr, a_settings, a_temperatureInfo ) );
552}
553
554/* *********************************************************************************************************//**
555 * Returns the multi-group, total cross section for the requested label. This is summed over all reactions.
556 *
557 * @param a_smr [Out] If errors are not to be thrown, then the error is reported via this instance.
558 * @param a_settings [in] Specifies the requested label.
559 * @param a_temperatureInfo [in] Specifies the temperature and labels use to lookup the requested data.
560 * @param a_reactionsToExclude [in] A list of reaction indices that are to be ignored when calculating the cross section.
561 * @param a_label [in] If not an empty string, this is used as the label for the form to return and the *a_temperatureInfo* labels are ignored.
562 *
563 * @return The requested multi-group cross section as a GIDI::Vector.
564 ***********************************************************************************************************/
565
567 Styles::TemperatureInfo const &a_temperatureInfo, ExcludeReactionsSet const &a_reactionsToExclude, std::string const &a_label ) const {
568
569 Vector vector;
570 ExcludeReactionsSet excludeReactionsSet( a_reactionsToExclude );
571
572 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
573 vector += m_protares[i1]->multiGroupCrossSection( a_smr, a_settings, a_temperatureInfo, a_reactionsToExclude, a_label );
574 excludeReactionsSetAdjust( excludeReactionsSet, *m_protares[i1] );
575 }
576
577 return( vector );
578}
579
580/* *********************************************************************************************************//**
581 * Returns the multi-group, total Q for the requested label. This is a cross section weighted multiplicity
582 * summed over all reactions
583 *
584 * @param a_smr [Out] If errors are not to be thrown, then the error is reported via this instance.
585 * @param a_settings [in] Specifies the requested label.
586 * @param a_temperatureInfo [in] Specifies the temperature and labels use to lookup the requested data.
587 * @param a_final [in] If false, only the Q for the primary reactions are return, otherwise, the Q for the final reactions.
588 * @param a_reactionsToExclude [in] A list of reaction indices that are to be ignored when calculating the Q.
589 *
590 * @return The requested multi-group Q as a GIDI::Vector.
591 ***********************************************************************************************************/
592
594 Styles::TemperatureInfo const &a_temperatureInfo, bool a_final, bool a_effectivePhotoAtomic,
595 ExcludeReactionsSet const &a_reactionsToExclude ) const {
596
597 Vector vector;
598 ExcludeReactionsSet excludeReactionsSet( a_reactionsToExclude );
599
600 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
601 vector += m_protares[i1]->multiGroupQ( a_smr, a_settings, a_temperatureInfo, a_final, a_effectivePhotoAtomic, excludeReactionsSet );
602 excludeReactionsSetAdjust( excludeReactionsSet, *m_protares[i1] );
603 }
604
605 return( vector );
606}
607
608/* *********************************************************************************************************//**
609 * Returns the multi-group, total multiplicity for the requested label for the requested product. This is a cross section weighted multiplicity.
610 *
611 * @param a_smr [Out] If errors are not to be thrown, then the error is reported via this instance.
612 * @param a_settings [in] Specifies the requested label.
613 * @param a_temperatureInfo [in] Specifies the temperature and labels use to lookup the requested data.
614 * @param a_productID [in] Id for the requested product.
615 * @param a_reactionsToExclude [in] A list of reaction indices that are to be ignored when calculating the multiplicity.
616 *
617 * @return The requested multi-group multiplicity as a GIDI::Vector.
618 ***********************************************************************************************************/
619
621 Styles::TemperatureInfo const &a_temperatureInfo, std::string const &a_productID,
622 ExcludeReactionsSet const &a_reactionsToExclude ) const {
623
624 Vector vector;
625 ExcludeReactionsSet excludeReactionsSet( a_reactionsToExclude );
626
627 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
628 vector += m_protares[i1]->multiGroupMultiplicity( a_smr, a_settings, a_temperatureInfo, a_productID, excludeReactionsSet );
629 excludeReactionsSetAdjust( excludeReactionsSet, *m_protares[i1] );
630 }
631
632 return( vector );
633}
634
635/* *********************************************************************************************************//**
636 * Returns the multi-group, total fission neutron multiplicity for the requested label. This is a cross section weighted multiplicity.
637 *
638 * @param a_smr [Out] If errors are not to be thrown, then the error is reported via this instance.
639 * @param a_settings [in] Specifies the requested label.
640 * @param a_temperatureInfo [in] Specifies the temperature and labels use to lookup the requested data.
641 * @param a_reactionsToExclude [in] A list of reaction indices that are to be ignored when calculating the multiplicity.
642 *
643 * @return The requested multi-group fission neutron multiplicity as a GIDI::Vector.
644 ***********************************************************************************************************/
645
647 Styles::TemperatureInfo const &a_temperatureInfo, ExcludeReactionsSet const &a_reactionsToExclude ) const {
648
649 Vector vector;
650 ExcludeReactionsSet excludeReactionsSet( a_reactionsToExclude );
651
652 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
653 vector += m_protares[i1]->multiGroupFissionNeutronMultiplicity( a_smr, a_settings, a_temperatureInfo, excludeReactionsSet );
654 excludeReactionsSetAdjust( excludeReactionsSet, *m_protares[i1] );
655 }
656
657 return( vector );
658}
659
660/* *********************************************************************************************************//**
661 * Returns the multi-group, total fission gamma multiplicity for the requested label. This is a cross section weighted multiplicity.
662 *
663 * @param a_smr [Out] If errors are not to be thrown, then the error is reported via this instance.
664 * @param a_settings [in] Specifies the requested label.
665 * @param a_temperatureInfo [in] Specifies the temperature and labels use to lookup the requested data.
666 * @param a_reactionsToExclude [in] A list of reaction indices that are to be ignored when calculating the multiplicity.
667 *
668 * @return The requested multi-group fission neutron multiplicity as a GIDI::Vector.
669 ***********************************************************************************************************/
670
672 Styles::TemperatureInfo const &a_temperatureInfo, ExcludeReactionsSet const &a_reactionsToExclude ) const {
673
674 Vector vector;
675 ExcludeReactionsSet excludeReactionsSet( a_reactionsToExclude );
676
677 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
678 vector += m_protares[i1]->multiGroupFissionGammaMultiplicity( a_smr, a_settings, a_temperatureInfo, excludeReactionsSet );
679 excludeReactionsSetAdjust( excludeReactionsSet, *m_protares[i1] );
680 }
681
682 return( vector );
683}
684
685/* *********************************************************************************************************//**
686 * Returns the multi-group, total product matrix for the requested label for the requested product id for the requested Legendre order.
687 * If no data are found, an empty GIDI::Matrix is returned.
688 *
689 * @param a_smr [Out] If errors are not to be thrown, then the error is reported via this instance.
690 * @param a_settings [in] Specifies the requested label and if delayed neutrons should be included.
691 * @param a_temperatureInfo [in] Specifies the temperature and labels use to lookup the requested data.
692 * @param a_particles [in] The list of particles to be transported.
693 * @param a_productID [in] PoPs id for the requested product.
694 * @param a_order [in] Requested product matrix, Legendre order.
695 * @param a_reactionsToExclude [in] A list of reaction indices that are to be ignored when calculating the product matrix.
696 *
697 * @return The requested multi-group product matrix as a GIDI::Matrix.
698 ***********************************************************************************************************/
699
701 Styles::TemperatureInfo const &a_temperatureInfo, Transporting::Particles const &a_particles,
702 std::string const &a_productID, std::size_t a_order, ExcludeReactionsSet const &a_reactionsToExclude ) const {
703
704 Matrix matrix( 0, 0 );
705 ExcludeReactionsSet excludeReactionsSet( a_reactionsToExclude );
706
707 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
708 matrix += m_protares[i1]->multiGroupProductMatrix( a_smr, a_settings, a_temperatureInfo, a_particles, a_productID, a_order,
709 excludeReactionsSet );
710 excludeReactionsSetAdjust( excludeReactionsSet, *m_protares[i1] );
711 }
712
713 return( matrix );
714}
715
716/* *********************************************************************************************************//**
717 * Like ProtareComposite::multiGroupProductMatrix, but only returns the fission neutron, transfer matrix.
718 *
719 * @param a_smr [Out] If errors are not to be thrown, then the error is reported via this instance.
720 * @param a_settings [in] Specifies the requested label and if delayed neutrons should be included.
721 * @param a_temperatureInfo [in] Specifies the temperature and labels use to lookup the requested data.
722 * @param a_particles [in] The list of particles to be transported.
723 * @param a_order [in] Requested product matrix, Legendre order.
724 * @param a_reactionsToExclude [in] A list of reaction indices that are to be ignored when calculating the fission matrix.
725 *
726 * @return The requested multi-group neutron fission matrix as a GIDI::Matrix.
727 ***********************************************************************************************************/
728
730 Styles::TemperatureInfo const &a_temperatureInfo, Transporting::Particles const &a_particles, std::size_t a_order,
731 ExcludeReactionsSet const &a_reactionsToExclude ) const {
732
733 Matrix matrix( 0, 0 );
734 ExcludeReactionsSet excludeReactionsSet( a_reactionsToExclude );
735
736 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
737 matrix += m_protares[i1]->multiGroupFissionMatrix( a_smr, a_settings, a_temperatureInfo, a_particles, a_order, excludeReactionsSet );
738 excludeReactionsSetAdjust( excludeReactionsSet, *m_protares[i1] );
739 }
740
741 return( matrix );
742}
743
744/* *********************************************************************************************************//**
745 * Returns the multi-group transport correction for the requested label. The transport correction is calculated from the transfer matrix
746 * for the projectile id for the Legendre order of *a_order + 1*.
747 *
748 * @param a_smr [Out] If errors are not to be thrown, then the error is reported via this instance.
749 * @param a_settings [in] Specifies the requested label.
750 * @param a_temperatureInfo [in] Specifies the temperature and labels use to lookup the requested data.
751 * @param a_particles [in] The list of particles to be transported.
752 * @param a_order [in] Maximum Legendre order for transport. The returned transport correction is for the next higher Legender order.
753 * @param a_transportCorrectionType [in] Requested transport correction type.
754 * @param a_temperature [in] The temperature of the flux to use when collapsing. Pass to the GIDI::collapse method.
755 * @param a_reactionsToExclude [in] A list of reaction indices that are to be ignored when calculating the transport correction.
756 *
757 * @return The requested multi-group transport correction as a GIDI::Vector.
758 ***********************************************************************************************************/
759
761 Styles::TemperatureInfo const &a_temperatureInfo, Transporting::Particles const &a_particles, std::size_t a_order,
762 TransportCorrectionType a_transportCorrectionType, double a_temperature, ExcludeReactionsSet const &a_reactionsToExclude ) const {
763
764 Vector vector;
765 ExcludeReactionsSet excludeReactionsSet( a_reactionsToExclude );
766
767 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
768 vector += m_protares[i1]->multiGroupTransportCorrection( a_smr, a_settings, a_temperatureInfo, a_particles, a_order,
769 a_transportCorrectionType, a_temperature, excludeReactionsSet );
770 excludeReactionsSetAdjust( excludeReactionsSet, *m_protares[i1] );
771 }
772
773 return( vector );
774}
775
776/* *********************************************************************************************************//**
777 * Returns the multi-group, total available energy for the requested label. This is a cross section weighted available energy
778 * summed over all reactions.
779 *
780 * @param a_smr [Out] If errors are not to be thrown, then the error is reported via this instance.
781 * @param a_settings [in] Specifies the requested label.
782 * @param a_temperatureInfo [in] Specifies the temperature and labels use to lookup the requested data.
783 * @param a_reactionsToExclude [in] A list of reaction indices that are to be ignored when calculating the available energy.
784 *
785 * @return The requested multi-group available energy as a GIDI::Vector.
786 ***********************************************************************************************************/
787
789 Styles::TemperatureInfo const &a_temperatureInfo, ExcludeReactionsSet const &a_reactionsToExclude ) const {
790
791 Vector vector;
792 ExcludeReactionsSet excludeReactionsSet( a_reactionsToExclude );
793
794 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
795 vector += m_protares[i1]->multiGroupAvailableEnergy( a_smr, a_settings, a_temperatureInfo, excludeReactionsSet );
796 excludeReactionsSetAdjust( excludeReactionsSet, *m_protares[i1] );
797 }
798
799 return( vector );
800}
801
802/* *********************************************************************************************************//**
803 * Returns the multi-group, total average energy for the requested label for the requested product. This is a cross section weighted average energy
804 * summed over all reactions.
805 *
806 * @param a_smr [Out] If errors are not to be thrown, then the error is reported via this instance.
807 * @param a_settings [in] Specifies the requested label.
808 * @param a_temperatureInfo [in] Specifies the temperature and labels use to lookup the requested data.
809 * @param a_productID [in] Particle id for the requested product.
810 * @param a_reactionsToExclude [in] A list of reaction indices that are to be ignored when calculating the average energy.
811 *
812 * @return The requested multi-group average energy as a GIDI::Vector.
813 ***********************************************************************************************************/
814
816 Styles::TemperatureInfo const &a_temperatureInfo, std::string const &a_productID, ExcludeReactionsSet const &a_reactionsToExclude ) const {
817
818 Vector vector;
819 ExcludeReactionsSet excludeReactionsSet( a_reactionsToExclude );
820
821 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
822 vector += m_protares[i1]->multiGroupAverageEnergy( a_smr, a_settings, a_temperatureInfo, a_productID, excludeReactionsSet );
823 excludeReactionsSetAdjust( excludeReactionsSet, *m_protares[i1] );
824 }
825
826 return( vector );
827}
828
829/* *********************************************************************************************************//**
830 * Returns the multi-group, total deposition energy for the requested label. This is a cross section weighted deposition energy
831 * summed over all reactions. The deposition energy is calculated by subtracting the average energy from each transportable particle
832 * from the available energy. The list of transportable particles is specified via the list of particle specified in the *a_settings* argument.
833 *
834 * @param a_smr [Out] If errors are not to be thrown, then the error is reported via this instance.
835 * @param a_settings [in] Specifies the requested label and the products that are transported.
836 * @param a_temperatureInfo [in] Specifies the temperature and labels use to lookup the requested data.
837 * @param a_particles [in] The list of particles to be transported.
838 * @param a_reactionsToExclude [in] A list of reaction indices that are to be ignored when calculating the deposition energy.
839 *
840 * @return The requested multi-group deposition energy as a GIDI::Vector.
841 ***********************************************************************************************************/
842
844 Styles::TemperatureInfo const &a_temperatureInfo, Transporting::Particles const &a_particles,
845 ExcludeReactionsSet const &a_reactionsToExclude ) const {
846
847 Vector vector;
848 ExcludeReactionsSet excludeReactionsSet( a_reactionsToExclude );
849
850 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
851 vector += m_protares[i1]->multiGroupDepositionEnergy( a_smr, a_settings, a_temperatureInfo, a_particles, excludeReactionsSet );
852 excludeReactionsSetAdjust( excludeReactionsSet, *m_protares[i1] );
853 }
854
855 return( vector );
856}
857
858/* *********************************************************************************************************//**
859 * Returns the multi-group, total available momentum for the requested label. This is a cross section weighted available momentum
860 * summed over all reactions.
861 *
862 * @param a_smr [Out] If errors are not to be thrown, then the error is reported via this instance.
863 * @param a_settings [in] Specifies the requested label.
864 * @param a_temperatureInfo [in] Specifies the temperature and labels use to lookup the requested data.
865 * @param a_reactionsToExclude [in] A list of reaction indices that are to be ignored when calculating the available momentum.
866 *
867 * @return The requested multi-group available momentum as a GIDI::Vector.
868 ***********************************************************************************************************/
869
871 Styles::TemperatureInfo const &a_temperatureInfo, ExcludeReactionsSet const &a_reactionsToExclude ) const {
872
873 Vector vector;
874 ExcludeReactionsSet excludeReactionsSet( a_reactionsToExclude );
875
876 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
877 vector += m_protares[i1]->multiGroupAvailableMomentum( a_smr, a_settings, a_temperatureInfo, excludeReactionsSet );
878 excludeReactionsSetAdjust( excludeReactionsSet, *m_protares[i1] );
879 }
880
881 return( vector );
882}
883
884/* *********************************************************************************************************//**
885 * Returns the multi-group, total average momentum for the requested label for the requested product. This is a cross section weighted average momentum
886 * summed over all reactions.
887 *
888 * @param a_smr [Out] If errors are not to be thrown, then the error is reported via this instance.
889 * @param a_settings [in] Specifies the requested label.
890 * @param a_temperatureInfo [in] Specifies the temperature and labels use to lookup the requested data.
891 * @param a_productID [in] Particle id for the requested product.
892 * @param a_reactionsToExclude [in] A list of reaction indices that are to be ignored when calculating the average momentum.
893 *
894 * @return The requested multi-group average momentum as a GIDI::Vector.
895 ***********************************************************************************************************/
896
898 Styles::TemperatureInfo const &a_temperatureInfo, std::string const &a_productID,
899 ExcludeReactionsSet const &a_reactionsToExclude ) const {
900
901 Vector vector;
902 ExcludeReactionsSet excludeReactionsSet( a_reactionsToExclude );
903
904 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
905 vector += m_protares[i1]->multiGroupAverageMomentum( a_smr, a_settings, a_temperatureInfo, a_productID, excludeReactionsSet );
906 excludeReactionsSetAdjust( excludeReactionsSet, *m_protares[i1] );
907 }
908
909 return( vector );
910}
911
912/* *********************************************************************************************************//**
913 * Returns the multi-group, total deposition momentum for the requested label. This is a cross section weighted deposition momentum
914 * summed over all reactions. The deposition momentum is calculated by subtracting the average momentum from each transportable particle
915 * from the available momentum. The list of transportable particles is specified via the list of particle specified in the *a_settings* argument.
916 *
917 * @param a_smr [Out] If errors are not to be thrown, then the error is reported via this instance.
918 * @param a_settings [in] Specifies the requested label.
919 * @param a_temperatureInfo [in] Specifies the temperature and labels use to lookup the requested data.
920 * @param a_particles [in] The list of particles to be transported.
921 * @param a_reactionsToExclude [in] A list of reaction indices that are to be ignored when calculating the deposition momentum.
922 *
923 * @return The requested multi-group deposition momentum as a GIDI::Vector.
924 ***********************************************************************************************************/
925
927 Styles::TemperatureInfo const &a_temperatureInfo, Transporting::Particles const &a_particles,
928 ExcludeReactionsSet const &a_reactionsToExclude ) const {
929
930 Vector vector;
931 ExcludeReactionsSet excludeReactionsSet( a_reactionsToExclude );
932
933 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
934 vector += m_protares[i1]->multiGroupDepositionMomentum( a_smr, a_settings, a_temperatureInfo, a_particles, excludeReactionsSet );
935 excludeReactionsSetAdjust( excludeReactionsSet, *m_protares[i1] );
936 }
937
938 return( vector );
939}
940
941/* *********************************************************************************************************//**
942 * Returns the multi-group, gain for the requested particle and label. This is a cross section weighted gain summed over all reactions.
943 *
944 * @param a_smr [Out] If errors are not to be thrown, then the error is reported via this instance.
945 * @param a_settings [in] Specifies the requested label.
946 * @param a_temperatureInfo [in] Specifies the temperature and labels use to lookup the requested data.
947 * @param a_productID [in] The PoPs' id for the particle whose gain is to be calculated.
948 * @param a_reactionsToExclude [in] A list of reaction indices that are to be ignored when calculating the gain.
949 *
950 * @return The requested multi-group gain as a **GIDI::Vector**.
951 ***********************************************************************************************************/
952
954 Styles::TemperatureInfo const &a_temperatureInfo, std::string const &a_productID,
955 ExcludeReactionsSet const &a_reactionsToExclude ) const {
956
957 Vector vector;
958 ExcludeReactionsSet excludeReactionsSet( a_reactionsToExclude );
959
960 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
961 vector += m_protares[i1]->multiGroupGain( a_smr, a_settings, a_temperatureInfo, a_productID, excludeReactionsSet );
962 excludeReactionsSetAdjust( excludeReactionsSet, *m_protares[i1] );
963 }
964
965 return( vector );
966}
967
968/* *********************************************************************************************************//**
969 *
970 *
971 * @return A list of label, mu cutoff pairs.
972 ***********************************************************************************************************/
973
975
976 stringAndDoublePairs muCutoffs;
977
978 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
979 stringAndDoublePairs muCutoffs2 = m_protares[i1]->muCutoffForCoulombPlusNuclearElastic( );
980
981 for( stringAndDoublePairs::iterator iter = muCutoffs2.begin( ); iter < muCutoffs2.end( ); ++iter ) muCutoffs.push_back( *iter );
982 }
983
984 return( muCutoffs );
985}
986
987/* *********************************************************************************************************//**
988 * Returns the list of DelayedNeutronProduct instances.
989 *
990 * @return The list of delayed neutrons.
991 ***********************************************************************************************************/
992
994
995 DelayedNeutronProducts delayedNeutronProducts1;
996
997 if( hasFission( ) ) {
998 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
999 DelayedNeutronProducts delayedNeutronProducts2 = m_protares[i1]->delayedNeutronProducts( );
1000
1001 delayedNeutronProducts1.insert( delayedNeutronProducts1.end( ), delayedNeutronProducts2.begin( ), delayedNeutronProducts2.end( ) );
1002 }
1003 }
1004
1005 return( delayedNeutronProducts1 );
1006}
1007
1008/* *********************************************************************************************************//**
1009 * Calls the **incompleteParticles** method for each **ProtareSingle** in *this*.
1010 *
1011 * @param a_settings [in] Specifies the requested label.
1012 * @param a_incompleteParticles [out] The list of particles whose **completeParticle** method returns *false*.
1013 ***********************************************************************************************************/
1014
1015void ProtareComposite::incompleteParticles( Transporting::Settings const &a_settings, std::set<std::string> &a_incompleteParticles ) const {
1016
1017 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
1018 m_protares[i1]->incompleteParticles( a_settings, a_incompleteParticles );
1019 }
1020}
1021
1022}
#define LUPI_maybeUnused
Frame projectileFrame(std::size_t a_index=0) const
std::string const & fileName(std::size_t a_index=0) const
Styles::TemperatureInfos temperatures() const
void updateReactionIndices(std::size_t a_offset) const
int numberOfLazyParsingHelperFormsReplaced() const
std::size_t numberOfReactions() const
Styles::Base & style(std::string const &a_label)
void append(Protare *a_protare)
std::size_t numberOfProtares() const
Vector multiGroupGain(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, std::string const &a_productID, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
Vector multiGroupAvailableMomentum(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
std::vector< std::string > libraries(std::size_t a_index=0) const
Vector multiGroupInverseSpeed(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo) const
stringAndDoublePairs muCutoffForCoulombPlusNuclearElastic() const
Vector multiGroupQ(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, bool a_final, bool a_effectivePhotoAtomic=true, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
int maximumLegendreOrder(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, std::string const &a_productID) const
void productIDs(std::set< std::string > &a_ids, Transporting::Particles const &a_particles, bool a_transportablesOnly) const
Vector multiGroupAverageEnergy(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, std::string const &a_productID, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
Vector multiGroupAvailableEnergy(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
Documentation_1_10::Suite & documentations()
std::size_t numberOfOrphanProducts() const
Vector multiGroupCrossSection(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}, std::string const &a_label="") const
ProtareSingle * protare(std::size_t a_index)
int intid(std::string const &a_id) const
Reaction * reaction(std::size_t a_index)
Matrix multiGroupProductMatrix(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, Transporting::Particles const &a_particles, std::string const &a_productID, std::size_t a_order, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
std::string const & realFileName(std::size_t a_index=0) const
void incompleteParticles(Transporting::Settings const &a_settings, std::set< std::string > &a_incompleteParticles) const
Vector multiGroupMultiplicity(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, std::string const &a_productID, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
Vector multiGroupDepositionEnergy(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, Transporting::Particles const &a_particles, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
ProtareComposite(Construction::Settings const &a_construction)
Vector multiGroupFissionGammaMultiplicity(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
LUPI::FormatVersion const & formatVersion(std::size_t a_index=0) const
Vector multiGroupAverageMomentum(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, std::string const &a_productID, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
DelayedNeutronProducts delayedNeutronProducts() const
Vector multiGroupTransportCorrection(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, Transporting::Particles const &a_particles, std::size_t a_order, TransportCorrectionType a_transportCorrectionType, double a_temperature, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
std::vector< double > groupBoundaries(Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, std::string const &a_productID) const
Vector multiGroupDepositionMomentum(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, Transporting::Particles const &a_particles, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
std::string const & evaluation(std::size_t a_index=0) const
Reaction * orphanProduct(std::size_t a_index)
Matrix multiGroupFissionMatrix(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, Transporting::Particles const &a_particles, std::size_t a_order, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
Vector multiGroupFissionNeutronMultiplicity(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
std::vector< Styles::TemperatureInfo > TemperatureInfos
Definition GIDI.hpp:3440
Definition GIDI.hpp:32
Frame
Definition GIDI.hpp:146
void excludeReactionsSetAdjust(ExcludeReactionsSet &a_excludeReactionsSet, Protare const &a_protare)
Definition GIDI_misc.cc:461
std::vector< stringAndDoublePair > stringAndDoublePairs
Definition GIDI.hpp:486
std::set< std::size_t > ExcludeReactionsSet
Definition GIDI.hpp:47
std::vector< DelayedNeutronProduct > DelayedNeutronProducts
Definition GIDI.hpp:4031
TransportCorrectionType
Definition GIDI.hpp:147