MURE
Loading...
Searching...
No Matches
MCNPBrick.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 _MCNPBRICK_HXX_
20#define _MCNPBRICK_HXX_
21
26#include <string>
27#include <iosfwd>
28#include <vector>
29
30using namespace std;
31
32#include "MathBrick.hxx"
33#include "MCNPSurfaceCard.hxx"
34#include "MCNPNode.hxx"
35#include "MCSource.hxx"
36
37class MCNPSurfaceCard;
38class SurfaceCard;
39
40namespace MCNP
41{
42
44
57class Brick : public MathBrick
58{
59 public :
65
72 Brick(double HalfX = 0.01, double HalfY = 0.01, double HalfZ = 0.01, int Sign = - 1);
73
75
86 Brick(double *Origin, double *Ux, double *Uy, double *Uz, double HalfX = 0.01, double HalfY = 0.01, double HalfZ = 0.01, int Sign = - 1);
87
89
96 Brick(const char *Infinite, double HalfX = 0.01, double HalfY = 0.01, int Sign = - 1);
97
98 ~Brick() = default;
100
101
106 string Print() override;
107 SurfaceCard *GetSurfaceCard(int i) override;
108 Shape_ptr GetLeaf(int i) override;
110 {
112 }
114
115 private:
116 Brick(double HalfX, double HalfY, double HalfZ, int Sign, bool Infinite);
117 Brick *CreateNewInstance(int sign = 1) override;
118
119 void DefinePlane(vector < double > N, double D, MCNPSurfaceCard *&S);
120 void DefinePlanes();
121 void DefineSurface();
122
130};
131}
132
133#endif
#define sign(a)
Definition GenericReactorAssembly.cxx:43
Header file for MCNP::Node class.
Header file for MCNPSurfaceCard class.
Header file for Monte-Carlo Source abstract class.
Header file for MathBrick class.
MCNPSurfaceCard class print a mathematical surface in MCNP output format.
Definition MCNPSurfaceCard.hxx:41
A 3D rectangular parallepipede Shape.
Definition MCNPBrick.hxx:58
~Brick()=default
normal destructor
MCNPSurfaceCard * fBPz
Bottom Px.
Definition MCNPBrick.hxx:127
MCNPSurfaceCard * fRPy
Right Px.
Definition MCNPBrick.hxx:126
string Print() override
Print the Brick surface in a MCNP cell.
Definition MCNPBrick.cxx:110
void DefinePlanes()
Define plane surface cards for MCNP.
Definition MCNPBrick.cxx:215
Shape_ptr GetLeaf(int i) override
return one of the Plane (and not MathPlane) composing the Brick
Definition MCNPBrick.cxx:241
MCNPSurfaceCard * fTPz
Top Px.
Definition MCNPBrick.hxx:128
MCNPSurfaceCard * fLPy
Left Px.
Definition MCNPBrick.hxx:125
bool fIsDefinedSurfaceCalled
whether or not DefinedSurface has been called
Definition MCNPBrick.hxx:129
MCNPSurfaceCard * fRPx
Right Px.
Definition MCNPBrick.hxx:124
MCNPSurfaceCard * fLPx
Left Px.
Definition MCNPBrick.hxx:123
Brick * CreateNewInstance(int sign=1) override
a new Brick instance of the good type.
Definition MCNPBrick.cxx:312
void DefineSurface()
Define surface card for MCNP.
Definition MCNPBrick.cxx:133
void DefinePlane(vector< double > N, double D, MCNPSurfaceCard *&S)
return the right MCNP surface plane card depending on the normal vector to the plane
Definition MCNPBrick.cxx:259
void ResetIsDefinedSurfaceCalled() override
Definition MCNPBrick.hxx:109
A rectangular parallepipede box.
Definition MathBrick.hxx:58
virtual SurfaceCard * GetSurfaceCard()
Definition Shape.hxx:473
SurfaceCard class is used to define geometrical math surface for MC output format.
Definition SurfaceCard.hxx:42
This MCNP (concrete) class is used to built a reactor assembly.
Definition MCNPBrick.hxx:41
the namespace of the Standard C++

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