MURE
Loading...
Searching...
No Matches
MeshTally.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 _MESHTALLY_HXX_
20#define _MESHTALLY_HXX_
21
27#include <vector>
28#include <algorithm>
29#include <iosfwd>
30#include <string>
31
32using namespace std;
33
35
45{
46 public:
48 virtual MeshTally *Clone() = 0;
49 virtual ~MeshTally() = default;
50 virtual string Print()
51 {
52 return "";
53 }
54
55};
56
57
59
65class TMeshTally: public MeshTally
66{
67 public:
71 TMeshTally();
72 TMeshTally(const TMeshTally &mt);
73 MeshTally *Clone() override
74 {
75 return new TMeshTally(*this);
76 }
77 ~TMeshTally() override = default;
107 void AddMesh(string meshtype = "rectangular", int type = 1, string particle = "N", string obs = "flux");
117 void SetCorA(string cora);
128 void SetCorB(string corb);
141 void SetCorC(string corc);
142
153 void SetDoseParameter(int H = 10, int InterpolationMethod = 1, string Units = "sievert", double NormFactor = 1.0);
154
155 string Print() override;
156
157 private:
158 vector < int > fMeshType;
159 vector < int > fType;
160 vector < string > fMeshParticle;
161 vector < string > fMeshObs;
162
163 vector < string > fMeshcora;
164 vector < string > fMeshcorb;
165 vector < string > fMeshcorc;
166
167 int fH;
170 double fNormFactor;
171};
172
174
181{
182 public:
193 FMeshTally(string meshtype = "rectangular", string particle = "N");
194 FMeshTally(const FMeshTally &mt);
195 ~FMeshTally() override = default;
196 MeshTally *Clone() override
197 {
198 return new FMeshTally(*this);
199 }
200
209 void SetOrigin(vector < double > Origin)
210 {
211 fOrigin = Origin;
212 }
222 void SetCylinderAxis(double x = 0., double y = 0., double z = 1.);
232 void SetCylinderVector(double x = 1., double y = 0., double z = 0.);
233
242 void SetIMesh(vector < double > IMESH)
243 {
244 fIMESH = IMESH;
245 }
246
263 void SetIFineGrid(vector < int > IINTS);
264
273 void SetJMesh(vector < double > JMESH)
274 {
275 fJMESH = JMESH;
276 }
277
287 void SetJFineGrid(vector < int > JINTS);
288
298 void SetKMesh(vector < double > KMESH);
299
309 void SetKFineGrid(vector < int > KINTS);
310
317 void SetEMesh(vector < double > E);
328 void SetEFineGrid(vector < int > EINTS);
329
330 string Print() override;
331
333 {
334 return fNumber;
335 }
336
337 private:
338 string fType;
339 string fParticle;
341 vector < double > fOrigin;
342
343 vector < double > fAxis;
344 vector < double > fVector;
345
346 vector < double > fIMESH;
347 vector < double > fJMESH;
348 vector < double > fKMESH;
349 vector < double > fEMESH;
350 vector < int > fIINTS;
351 vector < int > fJINTS;
352 vector < int > fKINTS;
353 vector < int > fEINTS;
357};
358
359#endif
Define a MCNPX TMeshTally.
Definition MeshTally.hxx:181
vector< double > fEMESH
Energy coarse mesh grid.
Definition MeshTally.hxx:349
vector< double > fVector
theta axis reference of a cylindrical mesh
Definition MeshTally.hxx:344
void SetKFineGrid(vector< int > KINTS)
Definition MeshTally.cxx:276
bool fIfineGrid
whether a fine grid is defined in i
Definition MeshTally.hxx:354
vector< int > fIINTS
First fine mesh grid bins.
Definition MeshTally.hxx:350
void SetIMesh(vector< double > IMESH)
Definition MeshTally.hxx:242
vector< int > fJINTS
Second fine mesh grid bins.
Definition MeshTally.hxx:351
void SetCylinderAxis(double x=0., double y=0., double z=1.)
Definition MeshTally.cxx:239
vector< double > fOrigin
Origin of the mesh.
Definition MeshTally.hxx:341
vector< double > fJMESH
Second coarse mesh grid.
Definition MeshTally.hxx:347
void SetEFineGrid(vector< int > EINTS)
Definition MeshTally.cxx:290
void SetJFineGrid(vector< int > JINTS)
Definition MeshTally.cxx:270
void SetOrigin(vector< double > Origin)
Definition MeshTally.hxx:209
MeshTally * Clone() override
The "Virtual Copy Constructor".
Definition MeshTally.hxx:196
~FMeshTally() override=default
void SetEMesh(vector< double > E)
Definition MeshTally.cxx:283
vector< double > fIMESH
First coarse mesh grid.
Definition MeshTally.hxx:346
void SetIFineGrid(vector< int > IINTS)
Definition MeshTally.cxx:264
void SetJMesh(vector< double > JMESH)
Definition MeshTally.hxx:273
void SetKMesh(vector< double > KMESH)
Definition MeshTally.cxx:254
bool fKfineGrid
whether a fine grid is defined in k
Definition MeshTally.hxx:356
string fParticle
TMeshTally type.
Definition MeshTally.hxx:339
int fNumber
FMESH number.
Definition MeshTally.hxx:340
vector< double > fAxis
Axis coordinates of a cylindrical mesh.
Definition MeshTally.hxx:343
int GetNumber()
Definition MeshTally.hxx:332
bool fJfineGrid
whether a fine grid is defined in j
Definition MeshTally.hxx:355
string fType
TMeshTally type.
Definition MeshTally.hxx:338
string Print() override
Print a mesh tally.
Definition MeshTally.cxx:296
vector< int > fEINTS
Energy fine mesh grid bins.
Definition MeshTally.hxx:353
vector< double > fKMESH
Third coarse mesh grid.
Definition MeshTally.hxx:348
void SetCylinderVector(double x=1., double y=0., double z=0.)
Definition MeshTally.cxx:246
vector< int > fKINTS
Third fine mesh grid bins.
Definition MeshTally.hxx:352
Define a MeshTally class (abstract).
Definition MeshTally.hxx:45
virtual string Print()
Definition MeshTally.hxx:50
virtual MeshTally * Clone()=0
The "Virtual Copy Constructor".
virtual ~MeshTally()=default
Define a MCNPX TMeshTally.
Definition MeshTally.hxx:66
vector< int > fMeshType
Vector that contains the geometry mesh type.
Definition MeshTally.hxx:158
string Print() override
Print a mesh tally.
Definition MeshTally.cxx:105
vector< string > fMeshcorc
Vector that contains all the define mesh corc.
Definition MeshTally.hxx:165
void SetCorC(string corc)
Definition MeshTally.cxx:100
int fH
dose equivalent
Definition MeshTally.hxx:167
int fDoseUnits
1=(rem/h)/(particles/cm2-sec), 2=(sieverts/h)/(particles/cm2-sec)
Definition MeshTally.hxx:169
vector< int > fType
Vector that contains all the define TMeshTally type.
Definition MeshTally.hxx:159
double fNormFactor
normalization factor for dose
Definition MeshTally.hxx:170
void AddMesh(string meshtype="rectangular", int type=1, string particle="N", string obs="flux")
Definition MeshTally.cxx:70
vector< string > fMeshcora
Vector that contains all the define mesh cora.
Definition MeshTally.hxx:163
void SetCorB(string corb)
Definition MeshTally.cxx:95
vector< string > fMeshParticle
Vector that contains all the define mesh particule.
Definition MeshTally.hxx:160
vector< string > fMeshcorb
Vector that contains all the define mesh corb.
Definition MeshTally.hxx:164
MeshTally * Clone() override
The "Virtual Copy Constructor".
Definition MeshTally.hxx:73
vector< string > fMeshObs
Vector that contains all the define mesh observable.
Definition MeshTally.hxx:161
~TMeshTally() override=default
TMeshTally()
Definition MeshTally.cxx:46
int fInterpolationMethod
fInterpolationMethod
Definition MeshTally.hxx:168
void SetDoseParameter(int H=10, int InterpolationMethod=1, string Units="sievert", double NormFactor=1.0)
Definition MeshTally.cxx:165
void SetCorA(string cora)
Definition MeshTally.cxx:90
the namespace of the Standard C++

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