MURE
Loading...
Searching...
No Matches
ControlMaterial.hxx
Go to the documentation of this file.
1/*
2 This file is part of MURE,
3 Copyright (C) 2007-2021 MURE developers.
4
5 MURE is free software: you can redistribute it and/or modify
6 it under the terms of the GNU Lesser General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
9
10 MURE is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public License
16 along with MURE. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19#ifndef _CONTROLMATERIAL_
20#define _CONTROLMATERIAL_
26#include <vector>
27#include <iosfwd>
28
29#include "Material.hxx"
30#include "Reaction.hxx"
31
32using namespace std;
33
34//________________________________________________________________________
35//
36// ControlMaterial
37//________________________________________________________________________
38
39
41
51{
52 public:
55
57
61 ControlMaterial(int theNumber);
62
64 ControlMaterial(const Material &m);
65 ~ControlMaterial() override;
66 Material *Copy() override;
67
69
76 void AddTheControlNucleus(int Z, int A, double Proportion, ProportionUnitType ProportionUnit = kpMOL);
77
79
98 Material *Clone(double Temperature = - 1) override;
99 vector < int > &GetControlIndex()
100 {
101 return fControlIndex;
102 }
103 vector < Reaction > &GetControlReactions()
104 {
105 return fControlReactions;
106 }
107 void AddControlReaction(int code);
110
118 ControlMaterial *Mix(Material *M2, double part, ProportionUnitType ProportionUnit);
119 vector < Material *> Duplicate(int N, bool TrueClone = true) override;
121 private:
123 vector < int > fControlIndex;
124 vector < Reaction > fControlReactions;
125
126};
127#endif
Header file for Material class.
ProportionUnitType
Define the proportion units.
Definition Material.hxx:48
@ kpMOL
Definition Material.hxx:48
A ControlMaterial.
Definition ControlMaterial.hxx:51
ControlMaterial * Mix(Material *M2, double part, ProportionUnitType ProportionUnit)
Mix 2 Materials.
Definition ControlMaterial.cxx:129
void AddTheControlNucleus(int Z, int A, double Proportion, ProportionUnitType ProportionUnit=kpMOL)
Add the nucleus chosen as the control nucleus (tallies are taken for it)
Definition ControlMaterial.cxx:119
vector< int > fControlIndex
Indices of the control nuclei in the composition vector.
Definition ControlMaterial.hxx:123
vector< Reaction > fControlReactions
Reactions which are to be tallied.
Definition ControlMaterial.hxx:124
~ControlMaterial() override
Destructor.
Definition ControlMaterial.cxx:113
ControlMaterial()
Normal Constructor.
Definition ControlMaterial.cxx:42
Material * Clone(double Temperature=- 1) override
Clone a ControlMaterial.
Definition ControlMaterial.cxx:85
vector< Reaction > & GetControlReactions()
Definition ControlMaterial.hxx:103
void CopyMaterialControl(ControlMaterial *m)
Definition ControlMaterial.cxx:173
void AddControlReaction(int code)
add a reaction code (ENSDF) to be tallied
Definition ControlMaterial.cxx:138
vector< Material * > Duplicate(int N, bool TrueClone=true) override
Duplicate material n times over.
Definition ControlMaterial.cxx:154
vector< int > & GetControlIndex()
Definition ControlMaterial.hxx:99
Material * Copy() override
Correct copy method. Use instead of copy constructor!
Definition ControlMaterial.cxx:79
A Material constituing a Cell.
Definition Material.hxx:83
Define a Reaction list for Tally multiplicator inputs.
Definition Reaction.hxx:41
the namespace of the Standard C++

MURE Project, documentation generated by Doxygen 1.9.7 - Fri Jan 19 2024