Example #1
0
void getData(ifstream& input,vector<Bus>& vecBus,vector<ACline>& vecACLine,
				vector<TopoNode>& vecTopoNode,vector<Unit>& vecUnit,
				vector<Transformer>& vecTransformer,vector<Load>& vecLoad)
{//调用其他get函数,一次性读取
//有必要了解input的getline是怎么工作的。
//使用过一次,然后再次使用是有影响的
//所有在使用输入流时应该注意顺序,否则会导致无法跳出
	getBusData(input,vecBus);
	getAClineData(input,vecACLine);	
	getUnit(input,vecUnit);
	getTransData(input,vecTransformer);
	//load函数位置
	getLoadData(input,vecLoad);
	getTopoNode(input,vecTopoNode);	
}
Example #2
0
void ASCIILib::makeBinLib(const char *alaraFname)
{

  int tKza, dKza, nGammaParents=0, writeGamma;
  char alaraIdxName[256], alaraLibName[256];
  char gammaIdxName[256], gammaLibName[256];

  strcpy(alaraIdxName,alaraFname);
  strcat(alaraIdxName,".idx");
  strcpy(alaraLibName,alaraFname);
  strcat(alaraLibName,".lib");  
  binLib = new ALARALib(alaraLibName, alaraIdxName);

  strcpy(gammaIdxName,alaraFname);
  strcat(gammaIdxName,".gdx");
  strcpy(gammaLibName,alaraFname);
  strcat(gammaLibName,".gam");  
  gammaLib = new ALARALib(gammaLibName,gammaIdxName);

  /* get initial info from text files */
  getTransInfo();
  debug(4,"Got transmutation header info.");
  getDecayInfo();
  debug(4,"Got decay header info.");

  binLib->writeHead(nGroups,grpBnds,grpWeights);
  gammaLib->writeHead(0,NULL,NULL);

  /* get first entries from each library */
  tKza = getTransData();
  debug(4,"Got next transmutation entry.");
  dKza = getDecayData();
  debug(4,"Got next decay entry.");
  /* while we are not at the last isotope in both libraries */
  while (tKza != LASTISO || dKza != LASTISO)
    {  
      /* establish order */
      if (tKza < dKza)
	{
	  /* make a pure trans entry */
	  debug(4,"Writing pure transmutation entry for %d.",tKza);
	  kza = tKza;
	  trans2merge();
	  tKza = getTransData();
	  writeGamma = FALSE;
	  debug(4,"Got next transmutation entry.");
	}
      else if (dKza < tKza)
	{
	  /* make a pure decay entry */
	  debug(4,"Writing pure decay entry for %d.",dKza);
	  kza = dKza;
	  decay2merge();
	  if (numSpec > 0)
	    {
	      gammaLib->writeGammaData(kza,numSpec,numDisc,nIntReg,nPnts,
				       discGammaE,discGammaI,intRegB,intRegT,
				       contX,contY);
	      nGammaParents++;
	    }
	  dKza = getDecayData();
	  debug(4,"Got next decay entry.");
	}
      else
	{
	  /* make a merged entry */
	  debug(4,"Writing merged entry for %d.",tKza);
	  kza = tKza;
	  merge();
	  tKza = getTransData();
	  debug(4,"Got next transmutation entry.");
	  if (numSpec > 0)
	    {
	      gammaLib->writeGammaData(kza,numSpec,numDisc,nIntReg,nPnts,
				       discGammaE,discGammaI,intRegB,intRegT,
				       contX,contY);
	      nGammaParents++;
	    }
	  dKza = getDecayData();
	  debug(4,"Got next decay entry.");
	}

      /* write the entry to the output files */
      binLib->writeData(kza,nRxns,mThalf,mE,daugKza,mEmitted,mXsection);

      /* increment the number of parents */
      nParents++;
    }

  binLib->close(nParents,DATALIB_ALARA,alaraIdxName);
  gammaLib->close(nGammaParents,DATALIB_GAMMA,gammaIdxName);

}