64,647
社区成员
发帖
与我相关
我的任务
分享
void PrintNeutronData(vector<Neutron> empSet,string path)A Z I LiB-Name MT Q-value 2200M/S MAXW.AVE 0.5MeV Fiss<0.5> 2.0MeV Fiss<2.0> 4.0MeV 8.0MeV 14.5MeV 20.0MeV
143 58 0 ENDF/B-7.0 16 -5.144 0 0 0 6.32279e-008 0 0.0234268 0 1.09364 1.642 0.509246
143 58 0 ENDF/B-7.0 17 -12.313 0 0 0 0 0 3.95165e-005 0 0 0.159854 1.28744
143 58 0 ENDF/B-7.0 22 0.878 0 0 0 0 0 3.40102e-007 0 1.56597e-006 0.000848508 0.00556141
143 58 0 ENDF/B-7.0 28 -8.866 0 0 0 0 0 3.85724e-008 0 0 4.14916e-005 0.00676385
143 58 0 ENDF/B-7.0 102 6.896 6.00267 5.901 0.00858214 0.0172539 0.00509794 0.00674437 0.00130034 0.000224969 0.000474901 9.66381e-005
143 58 0 ENDF/B-7.0 103 0 0 0 0 0 0 9.83266e-007 0 6.26903e-007 0.0028356 0.0137225
143 58 0 ENDF/B-7.0 107 0 0 0 2.49441e-007 4.75305e-007 2.62467e-006 4.54995e-006 7.77031e-006 4.29309e-005 0.001386 0.00160589
144 58 0 ENDF/B-7.0 16 -6.8971 0 0 0 0 0 0.0125552 0 0.730946 1.37455 0.222662
144 58 0 ENDF/B-7.0 17 -12.0482 0 0 0 0 0 0.000132074 0 0 0.730007 1.9082
144 58 0 ENDF/B-7.0 22 0.432094 0 0 0 0 0 1.61712e-007 0 1.41549e-006 0.000368898 0.00467183
144 58 0 ENDF/B-7.0 28 -9.41463 0 0 0 0 0 1.60365e-008 0 0 1.05083e-006 0.00369747
144 58 0 ENDF/B-7.0 102 4.76039 1.00039 0.98895 0.0067401 0.0106351 0.00650936 0.00633884 0.00295087 0.000267194 0.00100119 0.00115282
144 58 0 ENDF/B-7.0 103 -4.71852 0 0 0 0 0 5.60984e-007 0 0 0.00197984 0.0126601
144 58 0 ENDF/B-7.0 104 -7.10451 0 0 0 0 0 7.31648e-008 0 0 6.85188e-005 0.0108884
144 58 0 ENDF/B-7.0 105 -7.28746 0 0 0 0 0 6.41055e-008 0 0 0.000101851 0.00684231
144 58 0 ENDF/B-7.0 107 5.20319 0 0 0 0 1.49681e-008 1.82322e-006 2.02277e-006 3.7967e-005 0.000909396 0.00152282
145 58 0 TENDL-2010 16 -4.73117 0 0 0 3.17685e-007 0 0.0453389 0 1.62299 1.22923 0.400757
145 58 0 TENDL-2010 17 -11.6275 0 0 0 0 0 0.000123627 0 0 0.621947 1.36456
void PrintNeutronData(vector<Neutron> empSet,string path)
{
vector<Neutron> SumNeutrondata;
Neutron sum;
ofstream outfile(path);
if(!outfile){
cerr<<"open error!"<<endl;
exit(1);
}
outfile<<titleNeutron<<endl;
sum.A=empSet[0].A;
sum.Z=empSet[0].Z;
sum.Isomer=empSet[0].Isomer;
sum.LiBName=empSet[0].LiBName;
sum.MT=00;
sum.Qvalue=empSet[0].Qvalue;
sum.E2200ms=0;
sum.Emaxw=0;
sum.E05MeV=0;
sum.F05MeV=0;
sum.E2MeV=0;
sum.F2MeV=0;
sum.E4MeV=0;
sum.E8MeV=0;
sum.E145MeV=0;
sum.E20MeV=0;
for(vector<int>::size_type j = 0; j< empSet.size()&&(empSet[0].A==empSet[j].A)&&(empSet[0].Z==empSet[j].Z); j++)
{
sum.E2200ms=sum.E2200ms+empSet[j].E2200ms;
sum.Emaxw=sum.Emaxw+empSet[j].Emaxw;
sum.E05MeV=sum.E05MeV+empSet[j].E05MeV;
sum.F05MeV=sum.F05MeV+empSet[j].F05MeV;
sum.E2MeV=sum.E2MeV+empSet[j].E2MeV;
sum.F2MeV=sum.F2MeV+empSet[j].F2MeV;
sum.E4MeV=sum.E4MeV+empSet[j].E4MeV;
sum.E8MeV=sum.E8MeV+empSet[j].E8MeV;
sum.E145MeV=sum.E145MeV+empSet[j].E145MeV;
sum.E20MeV=sum.E20MeV+empSet[j].E20MeV;
}
SumNeutrondata.push_back(sum);
outfile<<setw(3)<<empSet[0].A<<" "<<setw(3)<<empSet[0].Z<<" "<<setw(2)<<empSet[0].Isomer<<" "<<setw(13)<<empSet[0].LiBName<<" "<<setw(5)<<empSet[0].MT<<" "<<setw(12)<<empSet[0].Qvalue<<" "<<setw(13)<<empSet[0].E2200ms<<" "<<setw(12)<<empSet[0].Emaxw<<" "<<setw(13)<<empSet[0].E05MeV<<" "<<setw(13)<<empSet[0].F05MeV<<" "<<setw(13)<<empSet[0].E2MeV<<" "<<setw(13)<<empSet[0].F2MeV<<" "<<setw(13)<<empSet[0].E4MeV<<" "<<setw(13)<<empSet[0].E8MeV<<" "<<setw(13)<<empSet[0].E145MeV<<" "<<setw(13)<<empSet[0].E20MeV<<" "<<endl;
for(vector<int>::size_type i=1;i<empSet.size();i++)
{
sum.A=empSet[i].A;
sum.Z=empSet[i].Z;
sum.Isomer=empSet[i].Isomer;
sum.LiBName=empSet[i].LiBName;
sum.MT=0;
sum.Qvalue=empSet[i].Qvalue;
sum.E2200ms=0;
sum.Emaxw=0;
sum.E05MeV=0;
sum.F05MeV=0;
sum.E2MeV=0;
sum.F2MeV=0;
sum.E4MeV=0;
sum.E8MeV=0;
sum.E145MeV=0;
sum.E20MeV=0;
if((empSet[i].A!=empSet[i-1].A)||(empSet[i].Z!=empSet[i-1].Z))
{
for(vector<int>::size_type j = 0; j< empSet.size()&&(empSet[i].A==empSet[j].A)&&(empSet[i].Z==empSet[j].Z); j++)
{
sum.E2200ms=sum.E2200ms+empSet[j].E2200ms;
sum.Emaxw=sum.Emaxw+empSet[j].Emaxw;
sum.E05MeV=sum.E05MeV+empSet[j].E05MeV;
sum.F05MeV=sum.F05MeV+empSet[j].F05MeV;
sum.E2MeV=sum.E2MeV+empSet[j].E2MeV;
sum.F2MeV=sum.F2MeV+empSet[j].F2MeV;
sum.E4MeV=sum.E4MeV+empSet[j].E4MeV;
sum.E8MeV=sum.E8MeV+empSet[j].E8MeV;
sum.E145MeV=sum.E145MeV+empSet[j].E145MeV;
sum.E20MeV=sum.E20MeV+empSet[j].E20MeV;
}
SumNeutrondata.push_back(sum);
}
outfile<<setw(3)<<empSet[i].A<<" "<<setw(3)<<empSet[i].Z<<" "<<setw(2)<<empSet[i].Isomer<<" "<<setw(13)<<empSet[i].LiBName<<" "<<setw(5)<<empSet[i].MT<<" "<<setw(12)<<empSet[i].Qvalue<<" "<<setw(13)<<empSet[i].E2200ms<<" "<<setw(12)<<empSet[i].Emaxw<<" "<<setw(13)<<empSet[i].E05MeV<<" "<<setw(13)<<empSet[i].F05MeV<<" "<<setw(13)<<empSet[i].E2MeV<<" "<<setw(13)<<empSet[i].F2MeV<<" "<<setw(13)<<empSet[i].E4MeV<<" "<<setw(13)<<empSet[i].E8MeV<<" "<<setw(13)<<empSet[i].E145MeV<<" "<<setw(13)<<empSet[i].E20MeV<<" "<<endl;
}
//output the sum neutron cross section of the every nuclear
outfile<<endl<<endl<<"output the sum of the neutron cross section for each nuclear"<<endl<<endl;
outfile<<titleNeutron<<endl;
for(vector<int>::size_type i = 0; i< SumNeutrondata.size(); i++)
{
outfile<<setw(3)<<SumNeutrondata[i].A<<" "<<setw(3)<<SumNeutrondata[i].Z<<" "<<setw(2)<<SumNeutrondata[i].Isomer<<" "<<setw(13)<<SumNeutrondata[i].LiBName<<" "<<setw(5)<<SumNeutrondata[i].MT<<" "<<setw(12)<<SumNeutrondata[i].Qvalue<<" "<<setw(13)<<SumNeutrondata[i].E2200ms<<" "<<setw(12)<<SumNeutrondata[i].Emaxw<<" "<<setw(13)<<SumNeutrondata[i].E05MeV<<" "<<setw(13)<<SumNeutrondata[i].F05MeV<<" "<<setw(13)<<SumNeutrondata[i].E2MeV<<" "<<setw(13)<<SumNeutrondata[i].F2MeV<<" "<<setw(13)<<SumNeutrondata[i].E4MeV<<" "<<setw(13)<<SumNeutrondata[i].E8MeV<<" "<<setw(13)<<SumNeutrondata[i].E145MeV<<" "<<setw(13)<<SumNeutrondata[i].E20MeV<<" "<<endl;
}
}
之间