|
MURE
|
Regular hexagon Shape of a given height. More...
#include <MathHexagon.hxx>
Public Member Functions | |
Constructors | |
| MathHexagon (double HalfHeight=0.005, double Side=0.01, int Sign=- 1) | |
| Normal Constructor. | |
| MathHexagon (const char *Infinite, double Side=0.01, int Sign=- 1) | |
| Infinite Constructor. | |
| MathHexagon (const MathHexagon &h) | |
| Copy Constructor. | |
| Shape_ptr | Clone (int count=0) override |
| Clone a Shape. | |
| void | Copy (Shape_ptr S) override |
| Copy all attributs of a Shape S (but not attributs of the father classes). | |
Get shape parameters | |
| unsigned | IsHexagon () override |
| double | GetWidth () |
| double | GetSide () |
| double | GetHalfHeight () |
| double | GetOrigin (int i) |
| vector< double > | GetOrigin () |
| void | SetPeriodicBoundary (bool state=true, string TopBottPlaneBC="mirror") override |
| Periodic boundary (WARNING: only for Brick and Hexagon). | |
| void | SetTopBottomPlanesOpen () override |
| The top/bottom planes are NOT mirrors. | |
| void | SetSidePlanesOpen () override |
| The side planes are NOT mirrors. | |
| Shape_ptr | GetBoundingShape () |
| Returns the bounding shape of the hexagon, even if null. | |
| Shape_ptr | GetIncludedShape () |
| Returns the included shape of the hexagon, even if null. | |
Relations with other shapes | |
| unsigned | IsIncluded (Shape_ptr OtherShape) override |
| +1 this is included in OtherShape, 0 not included or don't know. | |
| unsigned | IsDisjoint (Shape_ptr OtherShape) override |
| +1 this is disjoint in OtherShape, 0 not included or don't know. | |
Shape transformations | |
| void | Translate (double dx, double dy, double dz, int count=0) override |
| Translate the Shape by (dx, dy, dz). | |
| void | Rotate (double phi, double theta=0, double psi=0, double *center=nullptr, int count=0) override |
| Rotate the Shape clockwise. | |
Public Member Functions inherited from MathNode | |
| MathNode (int Sign=+1) | |
| MathNode (const MathNode &n) | |
| Copy constructor. | |
| ~MathNode () override | |
| Normal destrutor. | |
| Shape_ptr | Clone (int count=0) override |
| Clone a Shape. | |
| unsigned | IsNode () override |
| unsigned | IsFullVoid () override |
| unsigned | IsVoid () override |
| unsigned | IsFull () override |
| double | GetVolume () override |
| return the Volume of a Node | |
| Shape_ptr | GetLeaf (int i) override |
| int | GetNumberOfLeaves () override |
| unsigned | Add (Shape_ptr OtherShape) override |
| Add a new Shape (in fact a Shape_ptr) to a Node. | |
| void | ReplaceLeaf (int i, Shape_ptr OtherShape) override |
| replace the ith leaf of a Node. | |
| void | SetBoundingShape (Shape_ptr theShape) |
| Declare a bounding shape. | |
| Shape_ptr | GetBoundingShape () |
| void | SetIncludedShape (Shape_ptr theShape) |
| Declare an included shape. | |
| Shape_ptr | GetIncludedShape () |
| void | SetMirrorBoundary (bool state=true) override |
| mirror a particle on the surface | |
| void | SetWhiteBoundary (bool state=true) override |
| mirror a particle on the surface with a cosine distribution | |
| void | SetTopBottomPlanesOpen () override |
| The top/bottom planes are NOT mirrors. | |
| void | SetSidePlanesOpen () override |
| The side planes are NOT mirrors. | |
| void | Translate (double dx, double dy, double dz, int count=0) override |
| Translate the Node of (dx, dy, dz). | |
| void | Rotate (double phi, double theta=0, double psi=0, double *center=nullptr, int count=0) override |
| Rotate the Node clockwise. | |
| unsigned | IsIncluded (Shape_ptr OtherShape) override |
| +1 this is included in OtherShape, 0 not included or don't know. | |
| unsigned | IsDisjoint (Shape_ptr OtherShape) override |
| +1 this is disjoint in OtherShape, 0 not included or don't know. | |
| virtual unsigned | Contain (Shape_ptr OtherShape) |
| +1 this contains the OtherShape, 0 not included or don't know. | |
| void | SetUniverse (int u=0) override |
| Set the Universe number for a shape used in a lattice. | |
| double | GetVirtualSphereRadius () override |
| returns the radius of a Sphere containing the Shape | |
| double * | GetVirtualSphereCenter () override |
| bool | PointInShape (double *P, int border) override |
| true if the point P is in the Shape. | |
| void | PrintX (int count=0) override |
| Debug method: Print the shape surface when fMouvement=true. | |
| void | PrintY (int count=0) override |
| Debug method: Print the shape surfaces, InsideShape, ... | |
| void | ReplaceNode (Shape_ptr C) override |
| Replace a Node by an other (C must be a Node) | |
| int | NumberOfShapes () override |
| return the number of Shapes contains in a Node | |
| void | CalculNot () override |
| Allocates and calculs the complement of Shape. | |
| void | Simplify (bool violent=false) override |
| Simplify a tree of Node. | |
| void | ResetIsDefinedSurfaceCalled () override |
Public Member Functions inherited from Shape | |
| Shape () | |
| Default constructor. The interior of a Shape is built. | |
| Shape (const Shape &s) | |
| Copy constructor. | |
| ~Shape () override | |
| Normal destructor. | |
| Shape_ptr | Not () |
| Return the complementary Shape (i.e. the other side) | |
| void | NewNot () |
| void | SetClone (Shape_ptr clone) |
| void | SetClone2Not () |
| Set the CloneShape to a Not. | |
| int | GetSign () |
| void | SetSign (int s) |
| void | SetOutermostShape (bool flag=true) |
| Say that this Shape is the most outer one. | |
| virtual unsigned | IsBrick () |
| virtual unsigned | IsCylinder () |
| virtual unsigned | IsPlane () |
| virtual unsigned | IsSphere () |
| virtual unsigned | IsTube () |
| virtual unsigned | IsZTorus () |
| bool | IsInfinite () |
| void | SetVolume (double V) |
| virtual double | GetArea () |
| Get the Area of a Shape. | |
| void | SetArea (double S) |
| virtual bool | IsTopBottomPlanesOpen () |
| virtual bool | IsSidePlanesOpen () |
| virtual bool | IsMirrorBoundary () |
| virtual bool | IsWhiteBoundary () |
| virtual bool | IsPeriodicBoundary () |
| unsigned | AddInsideShape (Shape_ptr OtherShape) |
| Add a Shape in fInsideShape each time a "put in" is done. | |
| unsigned | AddOriginalInsideShape (Shape_ptr OtherShape) |
| This method is called by Shape::AddInsideShape. | |
| void | ClearOriginalInsideShape () |
| void | ClearInsideShape () |
| unsigned | GetInsideShapeSize () |
| unsigned | GetOriginalInsideShapeSize () |
| void | SetInsideShape (int i, Shape_ptr S) |
| void | SetOriginalInsideShape (int i, Shape_ptr S) |
| Shape_ptr | GetInsideShape (int i) |
| Shape_ptr | GetOriginalInsideShape (int i) |
| string | GetShapeName () |
| returns the Shape name | |
| void | SetDebugName (string str) |
| string | GetDebugName () |
| virtual void | SetFill (int f) |
| int | GetFill () |
| int | GetUniverse () |
| void | IncrementSurface (double S) |
| virtual void | SetLinkedPlane (Shape_ptr P) |
| virtual SurfaceCard * | GetSurfaceCard () |
| virtual SurfaceCard * | GetSurfaceCard (int i) |
| virtual void | SetMouvement (bool state=true) |
| bool | GetMouvement () |
| void | SetViolentSimplify (bool Allowed=true) |
| Enable/disable violent simplification a certain shapes to avoid "union" (for Serpent outside) | |
| void | SetFreezeSimplify (bool flag=true) |
| Enable/disable simplification a certain nodes to avoid "union" (for Serpent outside) | |
| bool | IsViolentSimplifyAllowed () |
| virtual int | GetMonoSurfaceType () |
| void | SetInfinite () |
Public Member Functions inherited from TReference | |
| TReference () | |
| virtual | ~TReference ()=default |
| Destructor. | |
| void | AddReference (unsigned n=1) |
| unsigned | DelReference (unsigned n=1) |
| unsigned | Reference () |
Miscellaneous methods | |
| double | fHalfHeight |
| Half height of the Hexagon. | |
| double | fSide |
| length of Hexagon side. | |
| vector< double > | fOrigin |
| Origin of the Hexagon. | |
| double | GetVirtualSphereRadius () override |
| returns the radius of a Sphere containing the Shape | |
| double * | GetVirtualSphereCenter () override |
| returns the center of a Sphere containing the Shape | |
| string | Print () override |
| Print the Node surface in MCNP cell. | |
| void | CalculNot () override |
| Allocates and calculs the complement of Shape. | |
| vector< double > | NormalVector2XRightPlane () |
| MathHexagon * | CreateNewInstance (int sign=1) override |
| a new MathHexagon instance. | |
| MathHexagon (double HalfHeight, double Side, int Sign, bool Infinite) | |
| Private constructor needed to copy an Hexagon in methods. | |
| bool | IsSameAxis (MathHexagon *hexagon) |
| whether or not 2 hexagons have same z-axis and planes | |
Additional Inherited Members | |
Protected Member Functions inherited from MathNode | |
| virtual void | ElagueRoot () |
| Trims a tree with a Chain Saw. | |
| void | DevElague (int count=0, bool violent=false) override |
| Developps and Trims a tree of Node. | |
| void | UnSetMouvement () override |
| Set the fMouvement flag to false;. | |
| virtual void | ClearVectorShape (int UMVT=0) |
| Clear VectorShape. | |
| MathNode * | CreateNewInstance (int sign=1) override |
| a new MathNode instance. | |
| void | RemoveSurface () override |
| Removed unused surface from gMURE. | |
| void | Remove (vector< Shape_ptr > ::iterator Iterator) |
| remove a vector element | |
Protected Member Functions inherited from Shape | |
| virtual void | MinimumCopy (Shape *S) |
| Copy all attributs of a Shape S (but not attributs of the father classes). | |
| void | SetNot (Shape *aNot) |
| Allocates and calculs the complement of Shape. | |
| void | SetNotofNot () |
Protected Attributes inherited from MathNode | |
| vector< Shape_ptr > | fShapeVector |
| a vector of Shape_ptr of a Node | |
| vector< Shape_ptr > | fDestroyShape |
| a vector of destroyed Shape_ptr of a Node (for UnSetMouvement()) | |
| Shape_ptr | fBoundingShape |
| Shape containing the Node, 0 for none. | |
| Shape_ptr | fIncludedShape |
| Shape included in the Node, 0 for none. | |
| bool | fTube |
| true if the Node is a Tube | |
| bool | fHexagon |
| true if the Node is an Hexagon | |
| int | fCount |
| count flag to unset mvt | |
Protected Attributes inherited from Shape | |
| vector< Shape_ptr > | fInsideShape |
| a vector to remember which Shapes are inside the current one.Clear at each ">>" | |
| vector< Shape_ptr > | fOriginalInsideShape |
| a vector to remember which Shapes are inside the current one. | |
| int | fSign |
| Define whether the interior (-1) or the exterior (+1) of the Shape is considered. | |
| bool | fInfinite |
| Determines whether the shape is infinite or not. | |
| Shape * | fNot |
| pointer on complementary Shape if exists, else 0. | |
| bool | fMouvement |
| Flag that indicate a Shape is in mouvement (translation, ..) in a tree. | |
| int | fUniverse |
| Universe number (for lattice filling) | |
| int | fFill |
| Universe number that fill the Shape. | |
| double | fVolume |
| the Volume of a Shape; | |
| double | fArea |
| the area of a Shape; | |
| string | fShapeName |
| Name of a Shape. | |
| string | fDebugName |
| Debug Name of a Shape. | |
| double | fVirtualSphereR |
| the radius of a Sphere containing the Shape | |
| double * | fVirtualSphereO |
| the center of a Sphere containing the Shape | |
| Shape_ptr | fCloneShape |
| the clone of a Shape | |
| bool | fMirrorBoundary |
| whether or not mirror a particle on the surface | |
| bool | fOpenZPlanes |
| whether the top/bottom planes are not mirrors (default=false) | |
| bool | fOpenXYPlanes |
| whether the side planes are not mirrors (default=false) | |
| bool | fWhiteBoundary |
| whether or not mirror a particle on the surface with a cosine distribution | |
| bool | fPeriodicBoundary |
| whether or not Periodic boundary are applied (only for plane) | |
| string | fTopBottPlaneBoundaryCondition |
| whether the top(bottom) plane of a periodic boundary Shape is white or mirror | |
| Shape_ptr | fLinkedPlane |
| the Plane linked to an this for periodic boundary | |
| bool | fIsViolentSimplifyAllowed |
| whether or not a "violent simplification is allowed (ie a Node or a Brick are allowed to be separated) | |
| bool | fOutermostShape |
| whether or not this Shape is the limit to the exterior world (for calculating particle losses). | |
| bool | fFreezeSimplify |
| disable any Node simplification (for serpent in ReactorAssembly) | |
Regular hexagon Shape of a given height.
Default MathHexagon is the interior of a vertical hexagon center at origin of 0.01m high and 0.01m length side. It is only a mathematical shape (no link to any code output). User should use Hexagon (from MCNP or Serpent namespace).
| MathHexagon::MathHexagon | ( | double | HalfHeight = 0.005, |
| double | Side = 0.01, |
||
| int | Sign = - 1 |
||
| ) |
Normal Constructor.
Default: Interior of Hexagon of Z axis center at origin of 0.01m high and 0.01m length side. 2 vertices lies on the Y axis and the 2 sides are perpendicular to X axis.
Rem: To build a hexagon of width W (distance between 2 opposite planes) the Side should be set to
![\[ Side=\frac{W}{\sqrt(3)}\]](form_13.png)
.
| HalfHeight | : Half height of the Hexagon |
| Side | : length of Hexagon side. |
| Sign | : whether interior of the Tube is considered (-1) or exterior (+1) |
| MathHexagon::MathHexagon | ( | const char * | Infinite, |
| double | Side = 0.01, |
||
| int | Sign = - 1 |
||
| ) |
Infinite Constructor.
Default: Interior of Hexagon of Z axis center at origin, infinite in Z and 0.01m length side. 2 vertices lies on the Y axis and the 2 sides are perpendicular to X axis.
Rem: To build a hexagon of width W (distance between 2 opposite planes) the Side should be set to
![\[ Side=\frac{W}{\sqrt(3)}\]](form_13.png)
.
| Infinite | : any string between "" (for resolution of overload) |
| Side | : length of Hexagon side. |
| Sign | : whether interior of the Hexagon is considered (-1) or exterior (+1) |
| MathHexagon::MathHexagon | ( | const MathHexagon & | h | ) |
Copy Constructor.
|
protected |
Private constructor needed to copy an Hexagon in methods.
|
overridevirtual |
|
overridevirtual |
|
overrideprotectedvirtual |
a new MathHexagon instance.
Implements Shape.
| Shape_ptr MathHexagon::GetBoundingShape | ( | ) |
Returns the bounding shape of the hexagon, even if null.
|
inline |
< return the 1/2 height of an hexagon
| Shape_ptr MathHexagon::GetIncludedShape | ( | ) |
Returns the included shape of the hexagon, even if null.
|
inline |
< returns the origin of the hexagon
|
inline |
< returns the origin of the hexagon
|
inline |
< return the length of a hexagon side
|
overridevirtual |
|
overridevirtual |
|
inline |
< return the distance of 2 opposite hexagon sides
|
overridevirtual |
+1 this is disjoint in OtherShape, 0 not included or don't know.
Implements Shape.
|
inlineoverridevirtual |
|
overridevirtual |
+1 this is included in OtherShape, 0 not included or don't know.
Implements Shape.
|
protected |
whether or not 2 hexagons have same z-axis and planes
| vector< double > MathHexagon::NormalVector2XRightPlane | ( | ) |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
Periodic boundary (WARNING: only for Brick and Hexagon).
Please read carefully the MCNP user guide before using these conditions.
| state | : = true or false to allow periodic condition |
| TopBottPlaneBC | : The Top/Bottom planes of the Brick or Hexagon boundary conditions ; Possible values are : ="mirror" : The Top/Bottom planes are reflecting surfaces (Default) : ="white" : The Top/Bottom planes are white boundaries : ="infinite" : The Top/Bottom planes are infinite (not yet implemented) |
Reimplemented from Shape.
|
overridevirtual |
The side planes are NOT mirrors.
Reimplemented from Shape.
|
overridevirtual |
The top/bottom planes are NOT mirrors.
Reimplemented from Shape.
|
overridevirtual |
|
protected |
Half height of the Hexagon.
|
protected |
Origin of the Hexagon.
|
protected |
length of Hexagon side.