MeshKit
1.0
|
00001 /********************************************* 00002 Dec,09 00003 Reactor Geometry Generator 00004 Argonne National Laboratory 00005 00006 CPincell class definition. 00007 *********************************************/ 00008 #ifndef __RGG_PINCELL_H__ 00009 #define __RGG_PINCELL_H__ 00010 #include <iostream> 00011 #include "meshkit/vectortemplate.hpp" 00012 #include "meshkit/cylinder.hpp" 00013 00014 class CPincell 00015 { 00016 public: 00017 CPincell (); // ctor 00018 CPincell (const CPincell&); // copy ctor 00019 ~CPincell (); // dtor 00020 00021 // accessor functions 00022 void GetNumCyl(int &nCyl); 00023 void GetLineOne (std::string &szVolId, std::string &szVolAlias, int &nInputLines); 00024 void GetIntersectFlag(int &nIFlag); 00025 void GetPitch (double &dFlatF, double &dZL); 00026 void GetPitch (double &dPX, double &dPY, double &dPZ); 00027 void GetMatArray(int &nMaterials); 00028 void GetMat(CVector<std::string> &szVMatName, CVector<std::string> &szVMatAlias); 00029 void GetNumCyl(const int &nCyl); 00030 void GetCylSizes(int nCyl,int &nRadii); 00031 void GetCylRadii(int nCyl, CVector<double>&); 00032 void GetCellType(int nCyl, int &nType); 00033 void GetCylZPos(int nCyl, CVector<double>&); 00034 void GetCylPos(int nCyl, CVector<double>&); 00035 void GetCylMat(int nCyl, CVector<std::string>&); 00036 void GetCellMatSize(int &nSize); 00037 void GetCellMat(CVector<double> &dZStart, CVector<double> &dZEnd, CVector<std::string> &szVCellMat); 00038 00039 00040 // modifier functions 00041 00042 void SetLineOne (std::string szVolId, std::string szVolAlias, int nInputLines); 00043 void SetIntersectFlag(int nIFlag); 00044 void SetPitch (double dFlatF, double dZL); 00045 void SetPitch (double dPX, double dPY, double dPZ); 00046 void SetMatArray(int nMaterials); 00047 void SetMat(CVector<std::string> szVMatName, CVector<std::string> szVMatAlias); 00048 // cylinder 00049 void SetNumCyl(const int nCyl); 00050 void SetCylSizes(int nCyl,int nRadii); 00051 void SetCylZPos(int nCyl, CVector<double>); 00052 void SetCylRadii(int nCyl, CVector<double>); 00053 void SetCellType(int nCyl, int nType); 00054 void SetCylPos(int nCyl, CVector<double>); 00055 void SetCylMat(int nCyl, CVector<std::string>); 00056 //cell 00057 void SetCellMatSize(int nSize); 00058 void SetCellMat(CVector<double> dZStart, CVector<double> dZEnd, CVector<std::string> szVCellMat); 00059 00060 00061 private: 00062 00063 // pin related input 00064 //line one 00065 std::string m_szVolId, m_szVolAlias; 00066 int m_nInputLines, m_nIFlag; 00067 // pitch 00068 double m_dPX; double m_dPY; double m_dPZ; 00069 double m_dFlatF; double m_dZL; 00070 // material 00071 int m_nMaterials; 00072 CVector<std::string> m_szVMatName, m_szVMatAlias; 00073 //cylinder 00074 CVector<CCylinder> m_VCyl; 00075 int m_nNumCyl; 00076 //cellmaterial 00077 CVector<double> m_dVZStart; 00078 CVector<double> m_dVZEnd; 00079 CVector<std::string> m_szVCellMat; 00080 }; 00081 00082 #endif