⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dielecg.h

📁 pic 模拟程序!面向对象
💻 H
字号:
//dielecg.h#ifndef   __DIELECG_H#define   __DIELECG_H#include "part1g.h"#include "boundg.h"#include "gridg.h"#include "dielectr.h"class DielectricParams;//-----------------------------------------------// SecondaryParams class: provides secondary emission capability// this can occur multiple times per boundary, representing multiple // emission phenomenaclass SecondaryGroup{ protected:  Scalar secondary;  Scalar threshold;  Scalar Eemit;  ostring secSpeciesName; // must retain names, Species may not be read in yet  ostring iSpeciesName; public:  SecondaryGroup(Scalar _secondary, Scalar _threshold, Scalar _Eemit, 		 ostring _secSpeciesName, ostring _iSpeciesName);  //dad{begin} add a virtual destructor which does nothing  virtual ~SecondaryGroup() {}  //dad{end}  void checkRules(oopicList<ostring> &ruleMessages, SpatialRegionGroup* srgPtr);  virtual Secondary* CreateCounterPart(SpatialRegionGroup* srgPtr);};class Secondary2Group : public SecondaryGroup{ protected:  Scalar fReflected;  Scalar fScattered;  // Scalar energy_w;  Scalar energy_max0;  Scalar ks; public:  Secondary2Group(Scalar secondary, Scalar threshold, Scalar Eemit, ostring		  secSpeciesName, ostring iSpeciesName, Scalar fReflected,		  Scalar fScattered, /*Scalar energy_w,*/ Scalar energy_max0,		  Scalar ks);  //dad{begin} add an empty destructor  ~Secondary2Group() {}  //dad{end}  virtual Secondary* CreateCounterPart(SpatialRegionGroup* srgPtr);};class SecondaryParams : public ParameterGroup{ protected:  ScalarParameter secondary; //	secondary emission coeff.  ScalarParameter threshold; // threshold for emission;  ScalarParameter Eemit;     // max emission energy;  StringParameter secSpeciesName; // secondary species to emit;  StringParameter iSpeciesName;	// species which triggers sec;  DielectricParams* boundary; // attach to boundary public:  SecondaryParams();  virtual ostring InitializeFromStream(TXSTRSTD::ifstream &fin);  void setBoundary(DielectricParams *_boundary) {boundary = _boundary;}};class Secondary2Params : public SecondaryParams{  ScalarParameter fReflected; // fraction of reflected primaries;  ScalarParameter fScattered; // fraction of scattered primaries;  //  ScalarParameter energy_w; // max value of energy emission function;  ScalarParameter energy_max0; // energy at which sec. coeff = secondary;  ScalarParameter ks; // smoothness, 0<=ks<=2, 2 is smoother; public:  Secondary2Params();  virtual ostring InitializeFromStream(TXSTRSTD::ifstream &fin);};//=================== DielectricParams Classclass DielectricParams : public BoundaryParams{protected:  ScalarParameter er;  IntParameter QuseFlag;  ScalarParameter reflection; // reflected particle fraction  ScalarParameter refMaxE; // reflect when E < refMaxE  ScalarParameter transparency;  SecondaryParams secondaryParams;  Secondary2Params secondary2Params;  oopicList<SecondaryGroup> secondaryGroupList;	public:  DielectricParams(GridParams *GP, SpatialRegionGroup* srg);  virtual ~DielectricParams();  void set_commonParams(Boundary* B);  virtual void addSecondaries(Boundary* B);  virtual void addSecondaryGroup(SecondaryGroup* sGroup);  virtual void checkRules();  virtual void checkSecondaryRules();  virtual Boundary* CreateCounterPart();};//=================== DielectricRegionParams Class//	Creates a region filled with a dielectric material// (j1,k1), (j2,k2) specifies a rectangular region, not a line segment.class DielectricRegionParams : public DielectricParams{public:	DielectricRegionParams(GridParams *GP, SpatialRegionGroup *srg);	virtual void checkRules();	virtual Boundary* CreateCounterPart();	virtual void makeSegmentFitGrid(LineSegment *S, Grid *G);};//=================== DielectricTriangle Class//	Creates a triangular region filled with a dielectric material// (j1,k1), (j2,k2) specifies a rectangular region, not a line segment.// if the normal > 0, the region above the defined boundary is filled// with dielectric, the opposite is true if normal < 0.class DielectricTriangleParams : public DielectricParams{public:	DielectricTriangleParams(GridParams *GP, SpatialRegionGroup *srg) : DielectricParams(GP,srg) {};	virtual Boundary* CreateCounterPart();};#endif  //  __DIELECG_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -