MURE
Loading...
Searching...
No Matches
SerpentBrick.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 SERPENTBRICK_H
20#define SERPENTBRICK_H
21#include <string>
22#include <iosfwd>
23#include <vector>
24
25#include "MathBrick.hxx"
27#include "SerpentNode.hxx"
28#include "MCSource.hxx"
29
30using namespace std;
31
37namespace Serpent
38{
39
40
42
54class Brick: public MathBrick
55{
56 public:
62
69 Brick(double HalfX = 0.01, double HalfY = 0.01, double HalfZ = 0.01, int Sign = - 1);
70
72
83 Brick(double *Origin, double *Ux, double *Uy, double *Uz, double HalfX = 0.01, double HalfY = 0.01, double HalfZ = 0.01, int Sign = - 1);
85
92 Brick(const char *Infinite, double HalfX = 0.01, double HalfY = 0.01, int Sign = - 1);
94
95
100 string Print() override;
101 SerpentSurfaceCard *GetSurfaceCard(int i) override;
104 Shape_ptr GetLeaf(int i) override;
105
106 Brick *CreateNewInstance(int sign = 1) override;
107 int GetMonoSurfaceType() override;
109
110 private:
111 Brick(double HalfX, double HalfY, double HalfZ, int Sign, bool Infinite);
112
113 void DefinePlane(vector < double > N, double D, SerpentSurfaceCard *&S);
114 void DefinePlanes();
115 void DefineSurface();
116
124};
125}
126
127
128#endif // SERPENTBRICK_H
#define sign(a)
Definition GenericReactorAssembly.cxx:43
Header file for Monte-Carlo Source abstract class.
Header file for MathBrick class.
Header file for Serpent::Node class.
Header file for SerpentSurfaceCard class.
A rectangular parallepipede box.
Definition MathBrick.hxx:58
SerpentSurfaceCard class print a mathematical surface in Serpent output format.
Definition SerpentSurfaceCard.hxx:45
A 3D rectangular parallepipede Shape.
Definition SerpentBrick.hxx:55
SerpentSurfaceCard * fTPz
Top Px.
Definition SerpentBrick.hxx:122
void DefinePlane(vector< double > N, double D, SerpentSurfaceCard *&S)
Print a Brick Plane choosing beetween P, PX, PY or PZ.
Definition SerpentBrick.cxx:224
SerpentSurfaceCard * fBPz
Bottom Px.
Definition SerpentBrick.hxx:121
bool fIsDefinedSurfaceCalled
whether or not DefinedSurface has been called
Definition SerpentBrick.hxx:123
string Print() override
Print the Brick surface in a Serpent cell.
Definition SerpentBrick.cxx:118
SerpentSurfaceCard * fLPy
Left Px.
Definition SerpentBrick.hxx:119
int GetMonoSurfaceType() override
return 0=general Brick, 1=infinit square brick, 2=unrotate 3D Brick (cuboid)
Definition SerpentBrick.cxx:99
void DefinePlanes()
Define plane surface cards for Serpent.
Definition SerpentBrick.cxx:180
SerpentSurfaceCard * fRPy
Right Px.
Definition SerpentBrick.hxx:120
SerpentSurfaceCard * GetSurfaceCard() override
return the surface card for a Serpent cuboid
Definition SerpentBrick.cxx:274
Brick * CreateNewInstance(int sign=1) override
a new Brick instance of the good type.
Definition SerpentBrick.cxx:282
SerpentSurfaceCard * fLPx
Left Px.
Definition SerpentBrick.hxx:117
void DefineSurface()
Define surface cards for Serpent.
Definition SerpentBrick.cxx:146
Shape_ptr GetLeaf(int i) override
return one of the Plane (and not MathPlane) composing the Brick
Definition SerpentBrick.cxx:206
SerpentSurfaceCard * fRPx
Right Px.
Definition SerpentBrick.hxx:118
the namespace use to couple MURE and Serpent
the namespace of the Standard C++

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