Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
GIDI_energyFunctions2d.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 "GIDI.hpp"
11#include <HAPI.hpp>
12
13namespace GIDI {
14
15namespace Functions {
16
17/*! \class GeneralEvaporation2d
18 * Class for the GNDS <**generalEvaporation**> node.
19 */
20
21/* *********************************************************************************************************//**
22 *
23 * @param a_construction [in] Used to pass user options for parsing.
24 * @param a_node [in] The **HAPI::Node** to be parsed to construct a GeneralEvaporation2d instance.
25 * @param a_setupInfo [in] Information create my the Protare constructor to help in parsing.
26 * @param a_parent [in] The parent GIDI::Suite.
27 ***********************************************************************************************************/
28
29GeneralEvaporation2d::GeneralEvaporation2d( Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, Suite *a_parent ) :
30 Function2dForm( a_construction, a_node, a_setupInfo, FormType::generalEvaporation2d, a_parent ),
31 m_U( a_node.child( GIDI_UChars ), a_setupInfo ),
32 m_theta( data1dParse( a_construction, a_node.child( GIDI_thetaChars ).first_child( ), a_setupInfo, nullptr ) ),
33 m_g( data1dParse( a_construction, a_node.child( GIDI_gChars ).first_child( ), a_setupInfo, nullptr ) ) {
34
35}
36
37/* *********************************************************************************************************//**
38 ***********************************************************************************************************/
39
41
42 delete m_theta;
43 delete m_g;
44}
45
46/* *********************************************************************************************************//**
47 * Returns the domain minimum for the instance.
48 *
49 * @return The domain minimum for the instance.
50 ***********************************************************************************************************/
51
53
54 return( m_theta->domainMin( ) );
55}
56
57/* *********************************************************************************************************//**
58 * Returns the domain maximum for the instance.
59 *
60 * @return The domain maximum for the instance.
61 ***********************************************************************************************************/
62
64
65 return( m_theta->domainMax( ) );
66}
67
68/* *********************************************************************************************************//**
69 * Returns the value of the function evaluated at the specified projectile's energy and product's energy.
70 * Currently not implemented.
71 *
72 * @param a_x2 [in] The projectile's energy.
73 * @param a_x1 [in] The product's energy.
74 * @return The value of the function evaluated at *a_x2*, and *a_x1*.
75 ***********************************************************************************************************/
76
77double GeneralEvaporation2d::evaluate( LUPI_maybeUnused double a_x2, LUPI_maybeUnused double a_x1 ) const {
78
79 throw Exception( "GeneralEvaporation2d::evaluate: not implemented." );
80}
81
82/* *********************************************************************************************************//**
83 * Fills the argument *a_writeInfo* with the XML lines that represent *this*. Recursively enters each sub-node.
84 *
85 * @param a_writeInfo [in/out] Instance containing incremental indentation and other information and stores the appended lines.
86 * @param a_indent [in] The amount to indent *this* node.
87 * @param a_embedded [in] If *true*, *this* function is embedded in a higher dimensional function.
88 * @param a_inRegions [in] This is not used in this method.
89 ***********************************************************************************************************/
90
91void GeneralEvaporation2d::toXMLList_func( GUPI::WriteInfo &a_writeInfo, std::string const &a_indent, LUPI_maybeUnused bool a_embedded, LUPI_maybeUnused bool a_inRegions ) const {
92
93 std::string indent2 = a_writeInfo.incrementalIndent( a_indent );
94 std::string attributes;
95
96 a_writeInfo.addNodeStarter( a_indent, moniker( ), attributes );
97
98 m_U.toXMLList( a_writeInfo, indent2 );
99 energy2dToXMLList( a_writeInfo, GIDI_thetaChars, indent2, m_theta );
100 energy2dToXMLList( a_writeInfo, GIDI_gChars, indent2, m_g );
101 a_writeInfo.addNodeEnder( moniker( ) );
102}
103
104/*! \class SimpleMaxwellianFission2d
105 * Class for the GNDS <**simpleMaxwellianFission**> node.
106 */
107
108/* *********************************************************************************************************//**
109 *
110 * @param a_construction [in] Used to pass user options for parsing.
111 * @param a_node [in] The **HAPI::Node** to be parsed to construct a SimpleMaxwellianFission2d instance.
112 * @param a_setupInfo [in] Information create my the Protare constructor to help in parsing.
113 * @param a_parent [in] The parent GIDI::Suite.
114 ***********************************************************************************************************/
115
117 SetupInfo &a_setupInfo, Suite *a_parent ) :
118 Function2dForm( a_construction, a_node, a_setupInfo, FormType::simpleMaxwellianFission2d, a_parent ),
119 m_U( a_node.child( GIDI_UChars ), a_setupInfo ),
120 m_theta( data1dParse( a_construction, a_node.child( GIDI_thetaChars ).first_child( ), a_setupInfo, nullptr ) ) {
121
122}
123
124/* *********************************************************************************************************//**
125 ***********************************************************************************************************/
126
131
132/* *********************************************************************************************************//**
133 * Returns the domain minimum for the instance.
134 *
135 * @return The domain minimum for the instance.
136 ***********************************************************************************************************/
137
139
140 return( m_theta->domainMin( ) );
141}
142
143/* *********************************************************************************************************//**
144 * Returns the domain maximum for the instance.
145 *
146 * @return The domain maximum for the instance.
147 ***********************************************************************************************************/
148
150
151 return( m_theta->domainMax( ) );
152}
153
154/* *********************************************************************************************************//**
155 * Returns the value of the function evaluated at the specified projectile's energy and product's energy.
156 * Currently not implemented.
157 *
158 * @param a_x2 [in] The projectile's energy.
159 * @param a_x1 [in] The product's energy.
160 * @return The value of the function evaluated at *a_x2*, and *a_x1*.
161 ***********************************************************************************************************/
162
163double SimpleMaxwellianFission2d::evaluate( LUPI_maybeUnused double a_x2, LUPI_maybeUnused double a_x1 ) const {
164
165 throw Exception( "SimpleMaxwellianFission2d::evaluate: not implemented." );
166}
167
168/* *********************************************************************************************************//**
169 * Fills the argument *a_writeInfo* with the XML lines that represent *this*. Recursively enters each sub-node.
170 *
171 * @param a_writeInfo [in/out] Instance containing incremental indentation and other information and stores the appended lines.
172 * @param a_indent [in] The amount to indent *this* node.
173 * @param a_embedded [in] If *true*, *this* function is embedded in a higher dimensional function.
174 * @param a_inRegions [in] This is not used in this method.
175 ***********************************************************************************************************/
176
177void SimpleMaxwellianFission2d::toXMLList_func( GUPI::WriteInfo &a_writeInfo, std::string const &a_indent, LUPI_maybeUnused bool a_embedded, LUPI_maybeUnused bool a_inRegions ) const {
178
179 std::string indent2 = a_writeInfo.incrementalIndent( a_indent );
180 std::string attributes;
181
182 a_writeInfo.addNodeStarter( a_indent, moniker( ), attributes );
183
184 m_U.toXMLList( a_writeInfo, indent2 );
185 energy2dToXMLList( a_writeInfo, GIDI_thetaChars, indent2, m_theta );
186 a_writeInfo.addNodeEnder( moniker( ) );
187}
188
189/*! \class Evaporation2d
190 * Class for the GNDS <**evaporation**> node.
191 */
192
193/* *********************************************************************************************************//**
194 *
195 * @param a_construction [in] Used to pass user options for parsing.
196 * @param a_node [in] The **HAPI::Node** to be parsed to construct a Evaporation2d instance.
197 * @param a_setupInfo [in] Information create my the Protare constructor to help in parsing.
198 * @param a_parent [in] The parent GIDI::Suite.
199 ***********************************************************************************************************/
200
201Evaporation2d::Evaporation2d( Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, Suite *a_parent ) :
202 Function2dForm( a_construction, a_node, a_setupInfo, FormType::evaporation2d, a_parent ),
203 m_U( a_node.child( GIDI_UChars ), a_setupInfo ),
204 m_theta( data1dParse( a_construction, a_node.child( GIDI_thetaChars ).first_child( ), a_setupInfo, nullptr ) ) {
205
206}
207
208/* *********************************************************************************************************//**
209 ***********************************************************************************************************/
210
212
213 delete m_theta;
214}
215
216/* *********************************************************************************************************//**
217 * Returns the domain minimum for the instance.
218 *
219 * @return The domain minimum for the instance.
220 ***********************************************************************************************************/
221
223
224 return( m_theta->domainMin( ) );
225}
226
227/* *********************************************************************************************************//**
228 * Returns the domain maximum for the instance.
229 *
230 * @return The domain maximum for the instance.
231 ***********************************************************************************************************/
232
234
235 return( m_theta->domainMax( ) );
236}
237
238/* *********************************************************************************************************//**
239 * Returns the value of the function evaluated at the specified projectile's energy and product's energy.
240 * Currently not implemented.
241 *
242 * @param a_x2 [in] The projectile's energy.
243 * @param a_x1 [in] The product's energy.
244 * @return The value of the function evaluated at *a_x2*, and *a_x1*.
245 ***********************************************************************************************************/
246
247double Evaporation2d::evaluate( LUPI_maybeUnused double a_x2, LUPI_maybeUnused double a_x1 ) const {
248
249 throw Exception( "Evaporation2d::evaluate: not implemented." );
250}
251
252/* *********************************************************************************************************//**
253 * Fills the argument *a_writeInfo* with the XML lines that represent *this*. Recursively enters each sub-node.
254 *
255 * @param a_writeInfo [in/out] Instance containing incremental indentation and other information and stores the appended lines.
256 * @param a_indent [in] The amount to indent *this* node.
257 * @param a_embedded [in] If *true*, *this* function is embedded in a higher dimensional function.
258 * @param a_inRegions [in] This is not used in this method.
259 ***********************************************************************************************************/
260
261void Evaporation2d::toXMLList_func( GUPI::WriteInfo &a_writeInfo, std::string const &a_indent, LUPI_maybeUnused bool a_embedded, LUPI_maybeUnused bool a_inRegions ) const {
262
263 std::string indent2 = a_writeInfo.incrementalIndent( a_indent );
264 std::string attributes;
265
266 a_writeInfo.addNodeStarter( a_indent, moniker( ), attributes );
267
268 m_U.toXMLList( a_writeInfo, indent2 );
269 energy2dToXMLList( a_writeInfo, GIDI_thetaChars, indent2, m_theta );
270 a_writeInfo.addNodeEnder( moniker( ) );
271}
272
273/*! \class Watt2d
274 * Class for the GNDS <**Watt**> node.
275 */
276
277/* *********************************************************************************************************//**
278 *
279 * @param a_construction [in] Used to pass user options for parsing.
280 * @param a_node [in] The **HAPI::Node** to be parsed to construct a Watt2d instance.
281 * @param a_setupInfo [in] Information create my the Protare constructor to help in parsing.
282 * @param a_parent [in] The parent GIDI::Suite.
283 ***********************************************************************************************************/
284
285Watt2d::Watt2d( Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, Suite *a_parent ) :
286 Function2dForm( a_construction, a_node, a_setupInfo, FormType::Watt2d, a_parent ),
287 m_U( a_node.child( GIDI_UChars ), a_setupInfo ),
288 m_a( data1dParse( a_construction, a_node.child( GIDI_aChars ).first_child( ), a_setupInfo, nullptr ) ),
289 m_b( data1dParse( a_construction, a_node.child( GIDI_bChars ).first_child( ), a_setupInfo, nullptr ) ) {
290
291}
292
293/* *********************************************************************************************************//**
294 ***********************************************************************************************************/
295
297
298 delete m_a;
299 delete m_b;
300}
301
302/* *********************************************************************************************************//**
303 * Returns the domain minimum for the instance.
304 *
305 * @return The domain minimum for the instance.
306 ***********************************************************************************************************/
307
308double Watt2d::domainMin( ) const {
309
310 return( m_a->domainMin( ) );
311}
312
313/* *********************************************************************************************************//**
314 * Returns the domain maximum for the instance.
315*
316 * @return The domain maximum for the instance.
317 ***********************************************************************************************************/
318
319double Watt2d::domainMax( ) const {
320
321 return( m_a->domainMax( ) );
322}
323
324/* *********************************************************************************************************//**
325 * Returns the value of the function evaluated at the specified projectile's energy and product's energy.
326 * Currently not implemented.
327 *
328 * @param a_x2 [in] The projectile's energy.
329 * @param a_x1 [in] The product's energy.
330 * @return The value of the function evaluated at *a_x2*, and *a_x1*.
331 ***********************************************************************************************************/
332
333double Watt2d::evaluate( LUPI_maybeUnused double a_x2, LUPI_maybeUnused double a_x1 ) const {
334
335 throw Exception( "Watt2d::evaluate: not implemented." );
336}
337
338/* *********************************************************************************************************//**
339 * Fills the argument *a_writeInfo* with the XML lines that represent *this*. Recursively enters each sub-node.
340 *
341 * @param a_writeInfo [in/out] Instance containing incremental indentation and other information and stores the appended lines.
342 * @param a_indent [in] The amount to indent *this* node.
343 * @param a_embedded [in] If *true*, *this* function is embedded in a higher dimensional function.
344 * @param a_inRegions [in] This is not used in this method.
345 ***********************************************************************************************************/
346
347void Watt2d::toXMLList_func( GUPI::WriteInfo &a_writeInfo, std::string const &a_indent, LUPI_maybeUnused bool a_embedded, LUPI_maybeUnused bool a_inRegions ) const {
348
349 std::string indent2 = a_writeInfo.incrementalIndent( a_indent );
350 std::string attributes;
351
352 a_writeInfo.addNodeStarter( a_indent, moniker( ), attributes );
353
354 m_U.toXMLList( a_writeInfo, indent2 );
355 energy2dToXMLList( a_writeInfo, GIDI_aChars, indent2, m_a );
356 energy2dToXMLList( a_writeInfo, GIDI_bChars, indent2, m_b );
357 a_writeInfo.addNodeEnder( moniker( ) );
358}
359
360/*! \class MadlandNix2d
361 * Class for the GNDS <**MadlandNix**> node.
362 */
363
364/* *********************************************************************************************************//**
365 *
366 * @param a_construction [in] Used to pass user options for parsing.
367 * @param a_node [in] The **HAPI::Node** to be parsed to construct a MadlandNix2d instance.
368 * @param a_setupInfo [in] Information create my the Protare constructor to help in parsing.
369 * @param a_parent [in] The parent GIDI::Suite.
370 ***********************************************************************************************************/
371
372MadlandNix2d::MadlandNix2d( Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, Suite *a_parent ) :
373 Function2dForm( a_construction, a_node, a_setupInfo, FormType::MadlandNix2d, a_parent ),
374 m_EFL( a_node.child( GIDI_EFL_Chars ), a_setupInfo ),
375 m_EFH( a_node.child( GIDI_EFH_Chars ), a_setupInfo ),
376 m_T_M( data1dParse( a_construction, a_node.child( GIDI_T_M_Chars ).first_child( ), a_setupInfo, nullptr ) ) {
377
378}
379
380/* *********************************************************************************************************//**
381 ***********************************************************************************************************/
382
384
385 delete m_T_M;
386}
387
388/* *********************************************************************************************************//**
389 * Returns the domain minimum for the instance.
390 *
391 * @return The domain minimum for the instance.
392 ***********************************************************************************************************/
393
394double MadlandNix2d::domainMin( ) const {
395
396 return( m_T_M->domainMin( ) );
397}
398
399/* *********************************************************************************************************//**
400 * Returns the domain maximum for the instance.
401 *
402 * @return The domain maximum for the instance.
403 ***********************************************************************************************************/
404
405double MadlandNix2d::domainMax( ) const {
406
407 return( m_T_M->domainMax( ) );
408}
409
410/* *********************************************************************************************************//**
411 * Returns the value of the function evaluated at the specified projectile's energy and product's energy.
412 * Currently not implemented.
413 *
414 * @param a_x2 [in] The projectile's energy.
415 * @param a_x1 [in] The product's energy.
416 * @return The value of the function evaluated at *a_x2*, and *a_x1*.
417 ***********************************************************************************************************/
418
419double MadlandNix2d::evaluate( LUPI_maybeUnused double a_x2, LUPI_maybeUnused double a_x1 ) const {
420
421 throw Exception( "MadlandNix2d::evaluate: not implemented." );
422}
423
424/* *********************************************************************************************************//**
425 * Fills the argument *a_writeInfo* with the XML lines that represent *this*. Recursively enters each sub-node.
426 *
427 * @param a_writeInfo [in/out] Instance containing incremental indentation and other information and stores the appended lines.
428 * @param a_indent [in] The amount to indent *this* node.
429 * @param a_embedded [in] If *true*, *this* function is embedded in a higher dimensional function.
430 * @param a_inRegions [in] This is not used in this method.
431 ***********************************************************************************************************/
432
433void MadlandNix2d::toXMLList_func( GUPI::WriteInfo &a_writeInfo, std::string const &a_indent, LUPI_maybeUnused bool a_embedded, LUPI_maybeUnused bool a_inRegions ) const {
434
435 std::string indent2 = a_writeInfo.incrementalIndent( a_indent );
436 std::string attributes;
437
438 a_writeInfo.addNodeStarter( a_indent, moniker( ), attributes );
439
440 m_EFL.toXMLList( a_writeInfo, indent2 );
441 m_EFH.toXMLList( a_writeInfo, indent2 );
442 energy2dToXMLList( a_writeInfo, GIDI_T_M_Chars, indent2, m_T_M );
443 a_writeInfo.addNodeEnder( moniker( ) );
444}
445
446/*! \class Weighted_function2d
447 * Class for the GNDS <**weighted**> node.
448 */
449
450/* *********************************************************************************************************//**
451 *
452 * @param a_construction [in] Used to pass user options for parsing.
453 * @param a_node [in] The **HAPI::Node** to be parsed to construct a Weighted_function2d instance.
454 * @param a_setupInfo [in] Information create my the Protare constructor to help in parsing.
455 * @param a_parent [in] The parent GIDI::Suite.
456 ***********************************************************************************************************/
457
458Weighted_function2d::Weighted_function2d( Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, Suite *a_parent ) :
459 Function2dForm( a_construction, a_node, a_setupInfo, FormType::weighted_function2d, a_parent ) {
460
461 HAPI::Node child = a_node.first_child( );
462 m_weight = data1dParse( a_construction, child, a_setupInfo, nullptr );
463
464 child.to_next_sibling( );
465 m_energy = data2dParse( a_construction, child, a_setupInfo, nullptr );
466}
467
468/* *********************************************************************************************************//**
469 ***********************************************************************************************************/
470
472
473 delete m_weight;
474 delete m_energy;
475}
476
477/* *********************************************************************************************************//**
478 * Returns the domain minimum for the instance.
479 *
480 * @return The domain minimum for the instance.
481 ***********************************************************************************************************/
482
484
485 return( m_weight->domainMin( ) );
486}
487
488/* *********************************************************************************************************//**
489 * Returns the domain maximum for the instance.
490 *
491 * @return The domain maximum for the instance.
492 ***********************************************************************************************************/
493
495
496 return( m_weight->domainMax( ) );
497}
498
499/* *********************************************************************************************************//**
500 * Returns the value of the function evaluated at the specified projectile's energy and product's energy.
501 * Currently not implemented.
502 *
503 * @param a_x2 [in] The projectile's energy.
504 * @param a_x1 [in] The product's energy.
505 * @return The value of the function evaluated at *a_x2*, and *a_x1*.
506 ***********************************************************************************************************/
507
508double Weighted_function2d::evaluate( LUPI_maybeUnused double a_x2, LUPI_maybeUnused double a_x1 ) const {
509
510 throw Exception( "Weighted_function2d::evaluate: not implemented." );
511}
512
513/*! \class WeightedFunctionals2d
514 * Class for the GNDS <**weightedFunctionals**> node.
515 */
516
517/* *********************************************************************************************************//**
518 *
519 * @param a_construction [in] Used to pass user options for parsing.
520 * @param a_node [in] The **HAPI::Node** to be parsed to construct a WeightedFunctionals2d instance.
521 * @param a_setupInfo [in] Information create my the Protare constructor to help in parsing.
522 * @param a_parent [in] The parent GIDI::Suite.
523 ***********************************************************************************************************/
524
526 Suite *a_parent ) :
527 Function2dForm( a_construction, a_node, a_setupInfo, FormType::weightedFunctionals2d, a_parent ) {
528
529 for( HAPI::Node child = a_node.first_child( ); !child.empty( ); child.to_next_sibling( ) ) {
530 std::string name( child.name( ) );
531
532 if( name != GIDI_weightedChars ) throw Exception( "WeightedFunctionals2d::WeightedFunctionals2d: bad child." );
533 m_weighted_function2d.push_back( new Weighted_function2d( a_construction, child, a_setupInfo, nullptr ) );
534 }
535
536}
537
538/* *********************************************************************************************************//**
539 ***********************************************************************************************************/
540
542
543 for( std::vector<Weighted_function2d *>::iterator iter = m_weighted_function2d.begin( ); iter < m_weighted_function2d.end( ); ++iter ) delete *iter;
544}
545
546/* *********************************************************************************************************//**
547 * Returns the domain minimum for the instance.
548 *
549 * @return The domain minimum for the instance.
550 ***********************************************************************************************************/
551
553
554 double domainMin1 = m_weighted_function2d[0]->domainMin( );
555
556 for( std::vector<Weighted_function2d *>::const_iterator iter = m_weighted_function2d.begin( ); iter < m_weighted_function2d.end( ); ++iter ) {
557 double domainMin2 = (*iter)->domainMin( );
558
559 if( domainMin2 < domainMin1 ) domainMin1 = domainMin2;
560 }
561 return( domainMin1 );
562}
563
564/* *********************************************************************************************************//**
565 * Returns the domain maximum for the instance.
566 *
567 * @return The domain maximum for the instance.
568 ***********************************************************************************************************/
569
571
572 double domainMax1 = m_weighted_function2d[0]->domainMax( );
573
574 for( std::vector<Weighted_function2d *>::const_iterator iter = m_weighted_function2d.begin( ); iter < m_weighted_function2d.end( ); ++iter ) {
575 double domainMax2 = (*iter)->domainMax( );
576
577 if( domainMax2 < domainMax1 ) domainMax1 = domainMax2;
578 }
579 return( domainMax1 );
580}
581
582/* *********************************************************************************************************//**
583 * Returns the value of the function evaluated at the specified projectile's energy and product's energy.
584 * Currently not implemented.
585 *
586 * @param a_x2 [in] The projectile's energy.
587 * @param a_x1 [in] The product's energy.
588 * @return The value of the function evaluated at *a_x2*, and *a_x1*.
589 ***********************************************************************************************************/
590
591double WeightedFunctionals2d::evaluate( LUPI_maybeUnused double a_x2, LUPI_maybeUnused double a_x1 ) const {
592
593 throw Exception( "WeightedFunctionals2d::evaluate: not implemented." );
594}
595
596/*! \class NBodyPhaseSpace2d
597 * Class for the GNDS <**NBodyPhaseSpace**> node.
598 */
599
600/* *********************************************************************************************************//**
601 *
602 * @param a_construction [in] Used to pass user options for parsing.
603 * @param a_node [in] The **HAPI::Node** to be parsed to construct a NBodyPhaseSpace2d instance.
604 * @param a_setupInfo [in] Information create my the Protare constructor to help in parsing.
605 * @param a_parent [in] The parent GIDI::Suite.
606 ***********************************************************************************************************/
607
608NBodyPhaseSpace2d::NBodyPhaseSpace2d( Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, Suite *a_parent ) :
609 Function2dForm( a_construction, a_node, a_setupInfo, FormType::NBodyPhaseSpace2d, a_parent ),
610 m_numberOfProducts( a_node.attribute( GIDI_numberOfProductsChars ).as_int( ) ),
611 m_mass( a_node.child( GIDI_massChars ), a_setupInfo ) {
612
613}
614
615/* *********************************************************************************************************//**
616 ***********************************************************************************************************/
617
621
622/* *********************************************************************************************************//**
623 * Returns the domain minimum for the instance.
624 *
625 * @return The domain minimum for the instance.
626 ***********************************************************************************************************/
627
629
630 return( 0. ); // FIXME
631}
632
633/* *********************************************************************************************************//**
634 * Returns the domain maximum for the instance.
635 *
636 * @return The domain maximum for the instance.
637 ***********************************************************************************************************/
638
640
641 return( 1. ); // FIXME
642}
643
644/* *********************************************************************************************************//**
645 * Returns the value of the function evaluated at the specified projectile's energy and product's energy.
646 * Currently not implemented.
647 *
648 * @param a_x2 [in] The projectile's energy.
649 * @param a_x1 [in] The product's energy.
650 * @return The value of the function evaluated at *a_x2*, and *a_x1*.
651 ***********************************************************************************************************/
652
653double NBodyPhaseSpace2d::evaluate( LUPI_maybeUnused double a_x2, LUPI_maybeUnused double a_x1 ) const {
654
655 throw Exception( "NBodyPhaseSpace2d::evaluate: not implemented." );
656}
657
658} // End namespace Functions.
659
660} // End namespace GIDI.
#define GIDI_gChars
Definition GIDI.hpp:339
#define GIDI_thetaChars
Definition GIDI.hpp:338
#define GIDI_EFL_Chars
Definition GIDI.hpp:394
#define GIDI_aChars
Definition GIDI.hpp:392
#define GIDI_bChars
Definition GIDI.hpp:393
#define GIDI_T_M_Chars
Definition GIDI.hpp:396
#define GIDI_UChars
Definition GIDI.hpp:337
#define GIDI_EFH_Chars
Definition GIDI.hpp:395
#define GIDI_massChars
Definition GIDI.hpp:332
#define GIDI_numberOfProductsChars
Definition GIDI.hpp:449
#define LUPI_maybeUnused
void toXMLList_func(GUPI::WriteInfo &a_writeInfo, std::string const &a_indent, bool a_embedded, bool a_inRegions) const
Evaporation2d(Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, Suite *a_parent)
double evaluate(double a_x2, double a_x1) const
Function2dForm(std::string const &a_moniker, FormType a_type, ptwXY_interpolation a_interpolation, int a_index, double a_outerDomainValue)
Definition GIDI_form.cc:476
double evaluate(double a_x2, double a_x1) const
GeneralEvaporation2d(Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, Suite *a_parent)
void toXMLList_func(GUPI::WriteInfo &a_writeInfo, std::string const &a_indent, bool a_embedded, bool a_inRegions) const
MadlandNix2d(Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, Suite *a_parent)
void toXMLList_func(GUPI::WriteInfo &a_writeInfo, std::string const &a_indent, bool a_embedded, bool a_inRegions) const
double evaluate(double a_x2, double a_x1) const
NBodyPhaseSpace2d(Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, Suite *a_parent)
double evaluate(double a_x2, double a_x1) const
SimpleMaxwellianFission2d(Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, Suite *a_parent)
void toXMLList_func(GUPI::WriteInfo &a_writeInfo, std::string const &a_indent, bool a_embedded, bool a_inRegions) const
double evaluate(double a_x2, double a_x1) const
Watt2d(Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, Suite *a_parent)
double evaluate(double a_x2, double a_x1) const
void toXMLList_func(GUPI::WriteInfo &a_writeInfo, std::string const &a_indent, bool a_embedded, bool a_inRegions) const
double evaluate(double a_x2, double a_x1) const
WeightedFunctionals2d(Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, Suite *a_parent)
double evaluate(double a_x2, double a_x1) const
Weighted_function2d(Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, Suite *a_parent)
std::string const & moniker() const
Definition GUPI.hpp:102
std::string attribute() const
Definition GUPI.hpp:107
void addNodeEnder(std::string const &a_moniker)
Definition GUPI.hpp:59
std::string incrementalIndent(std::string const &indent)
Definition GUPI.hpp:52
void addNodeStarter(std::string const &indent, std::string const &a_moniker, std::string const &a_attributes="")
Definition GUPI.hpp:55
bool empty() const
Definition HAPI_Node.cc:150
void to_next_sibling() const
Definition HAPI_Node.cc:112
Node first_child() const
Definition HAPI_Node.cc:82
Definition GIDI.hpp:32
Functions::Function1dForm * data1dParse(Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, Suite *parent)
FormType
Definition GIDI.hpp:118
@ weighted_function2d
Definition GIDI.hpp:129
@ weightedFunctionals2d
Definition GIDI.hpp:129
@ simpleMaxwellianFission2d
Definition GIDI.hpp:128
@ generalEvaporation2d
Definition GIDI.hpp:128
Functions::Function2dForm * data2dParse(Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, Suite *parent)
void energy2dToXMLList(GUPI::WriteInfo &a_writeInfo, std::string const &a_moniker, std::string const &a_indent, Functions::Function1dForm *a_function)
Definition GIDI_misc.cc:442