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

📄 mccg.h

📁 pic 模拟程序!面向对象
💻 H
字号:
#ifndef __MCCG_H#define __MCCG_H/*====================================================================MCCG.HPurpose:  Define the MCCParams class, which contains the          Monte Carlo collision parametersVersion:  $Id: mccg.h,v 1.10 2004/09/08 15:09:49 yew Exp $Revision/Author/Date2.01  (Bruhwiler, 08-29-2000) added relativisticMCC flag, with get method.2.02  (Bruhwiler, 10-04-2000) added delayTime and stopTime.====================================================================*///#include "part1g.h"//#include "maxwelln.h"//#include "gridg.h"#include "mcc.h"#include "HeMCTI.h"#include "LiMCTI.h"#include "CsMCTI.h"#include "speciesg.h"class SpatialRegionGroup;//==================== MCCParams class// class for loading MCC packagesclass MCCParams : public ParameterGroup{  SpatialRegion* region;  SpatialRegionGroup* SRG;	/** This flag defauts to 0, meaning that the original MCC	 *  algorithms are used.  If it is set to 1, then the new	 *  relativistic cross section, energy exchange and	 *  scattering algorithms will be used.	 *	 *  At present, the relativistic algorithms have only been	 *  implemented for Li and N. -- Bruhwiler  09/03/2000	 */  IntParameter relativisticMCC; protected:  StringParameter gas;  ScalarParameter pressure;  ScalarParameter temperature;  StringParameter eSpecies;  StringParameter iSpecies;  StringParameter tSpecies;  StringParameter bSpecies;  //   // Species for the different ions in a multiple electron atoms.  // Note that the singly ionized ions of an atom are specified   // by the iSpecies variable. Then iSpeciesPlusPlus is for the  // doubly ionized atoms. This is done now only for He and will  // be generalized for other multi-electron atoms. dad 06/27/01.  //   StringParameter iSpeciesPlusPlus;  IntParameter ionzFraction_i;  ScalarParameter icxFactor;  ScalarParameter ecxFactor;  ScalarParameter x1MinMKS;  ScalarParameter x1MaxMKS;  ScalarParameter x2MinMKS;  ScalarParameter x2MaxMKS;  ScalarParameter delayTime;  ScalarParameter stopTime;  /**   * We want to have a function into the MCC structure of the input file   * which will be used to initialize the "NeutralGasDensity" member   * data. This data member is to be used for the   * laser ionization code. The reading of this function, given as   * a string which will be later parsed follows the example for the   * variable analyticF in the loadg.h and loadg.cpp files.   * dad.   */  StringParameter analyticF;  /**   * The MCCParams will contain the input parameters relevant for the    * Tunneling Ionization too. For now it is the addition of   * two flags "collisionFlag" with default value of 1 (true) and    * "tunnelingIonizationFlag" with a default value of 0 (false). The    * user can specify in the input file, by changing the values of    * these flags, what should be used in the Monte Carlo for each   * gas type.    * dad: 12/20/2000.   */  IntParameter collisionFlag;  IntParameter tunnelingIonizationFlag;  /**   * the TI_numMacroParticlesPerCell determines how many macro particles   * should be created per cell due to tunneling ionization. This    * parater effectively determines how many physical particles will    * be in a macro particle in each cell given the neutral atom's    * density for each cell. The default value is 10. dad 05/04/2000   */  IntParameter TI_numMacroParticlesPerCell;  /**   * ETIPolarizationFlag is a flag to specify the polarizability of   * the electric field. This is needed to decide which formula   * to use for the calculation of the tunneling ionization    * probability.   */  IntParameter ETIPolarizationFlag;  /**   * In the tunneling ionization simulations we need    * the frequency of the external time varying    * electric field in order to estimate the minimum   * E field magnitude for which Keldish' condition holds,    * i.e. we use gamma = 1, where gamma is the Keldish   * parameter.    * The default value of the frequency is set to -1. to   * indicate that no value for this paramter was set in    * the input file in which case the value used in   * the simulations is Scalar_EPSILON (as a value close   * to zero) set in the MCTI_Package class.    */  ScalarParameter EfieldFrequency;    /**   * The discardDumpFileNGDDataFlag is used to decide if    * the NGD data in a dump file is to be used or not.    * Its default falue is 0, false, in which case the    * NGD data in the dump file is read into the corresponding   * data members of the NGD object instances. If the value   * of the flag is != 0, then NGD data in a dump file is   * read but discarded. The simulation uses the input file   * information to initialize the NGD data structures in this case.   */  IntParameter discardDumpFileNGDDataFlag; public:  MCCParams(SpatialRegionGroup* SRG);  virtual ~MCCParams() {};  //MCCPackage* CreateCounterPart(SpatialRegion* _SR);  void CreateCounterPart(SpatialRegion*, MCC*, MCTI*) throw(Oops);  void checkRules();	/** Get the value of the integer parameter: relativisticMCC.	 *  See comments above for details.	 */  int getRelativisticMCC() {    return (int)relativisticMCC.getValue();  }};  #endif  // ifndef __MCCG_H  

⌨️ 快捷键说明

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