public void SetIsotopesFlux(List <Isotope> isotopes, NeutronSpectra neutronSpectra, Constants.DATALIBS dataLib, double kt) { NeutronSpectra = neutronSpectra; var macs = CurrentEndf.EndfMacs.GetMacsList(dataLib, kt); BurnUp = new BurnUp(isotopes, neutronSpectra, macs); }
public Reactor(List <Isotope> isotopes, NeutronSpectra spectra, DensityArray densityArray, Endf[] nuclearData) { initialize(nuclearData); NeutronSpectra = spectra; BurnUp = new BurnUp(isotopes, NeutronSpectra); DensityArray = densityArray; Calculate(1.0E6); }
public void setAvgCrossSections(NeutronSpectra neutronSpectra) { foreach (var isotope in Isotopes) { foreach (var cs in isotope.CrossSections) { cs.Value.SetAvgCs(neutronSpectra); } } }
private void buildBurnup() { IsBurnupSet = false; var flux = getText(fluxTextBox.Text, "Поток нейтронов"); var temp = getText(temperTextBox.Text, "Температура"); var kt = getText(txtBoxKt.Text, "kT"); var neutronSpectra = new NeutronSpectra(flux, temp); Constants.DATALIBS dataLib; Enum.TryParse(comBoxDataLibs.SelectedValue.ToString(), out dataLib); var isotopes = GetIsotopesRange(isotopesRange.Text); if (isotopes.Count == 0) { isotopes = GetIsotopesList(isotopesList.Text); } if (isotopes.Count == 0) { MessageBox.Show("Установите какие диапазон изотопов", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } //isotopes.RemoveAll(x => x.HalfLife <= 1000000.0); Reactor.SetIsotopesFlux(isotopes, neutronSpectra, dataLib, kt); /*var iso1 = Reactor.BurnUp.Isotopes.FirstOrDefault(x => x.Name == "Tl-206"); iso1.HalfLife = 2.52E2; iso1.CrossSections[Constants.REACT.N_G].AvgCs = 0.0; * var iso2 = Reactor.BurnUp.Isotopes.FirstOrDefault(x => x.Name == "Tl-207"); iso2.HalfLife = 2.86E2; iso2.CrossSections[Constants.REACT.N_G].AvgCs = 0.0; * var iso3 = Reactor.BurnUp.Isotopes.FirstOrDefault(x => x.Name == "Pb-204"); iso3.HalfLife = 1.0E40; iso3.CrossSections[Constants.REACT.N_G].AvgCs = 0.6650334; * var iso4 = Reactor.BurnUp.Isotopes.FirstOrDefault(x => x.Name == "Pb-205"); iso4.HalfLife = 1.0E40; iso4.CrossSections[Constants.REACT.N_G].AvgCs = 4.5297837; * var iso5 = Reactor.BurnUp.Isotopes.FirstOrDefault(x => x.Name == "Pb-206"); iso5.HalfLife = 1.0E40; iso5.CrossSections[Constants.REACT.N_G].AvgCs = 0.0274678; * var iso6 = Reactor.BurnUp.Isotopes.FirstOrDefault(x => x.Name == "Pb-207"); iso6.HalfLife = 1.0E40; iso6.CrossSections[Constants.REACT.N_G].AvgCs = 0.6265085; * var iso7 = Reactor.BurnUp.Isotopes.FirstOrDefault(x => x.Name == "Pb-208"); iso7.HalfLife = 1.0E40; iso7.CrossSections[Constants.REACT.N_G].AvgCs = 2.3199E-4; * var iso8 = Reactor.BurnUp.Isotopes.FirstOrDefault(x => x.Name == "Pb-209"); iso8.HalfLife = 1.16E4; iso8.CrossSections[Constants.REACT.N_G].AvgCs = 0.0; * var iso9 = Reactor.BurnUp.Isotopes.FirstOrDefault(x => x.Name == "Pb-210"); iso9.HalfLife = 7.01E8; iso9.CrossSections[Constants.REACT.N_G].AvgCs = 0.503063; * var iso10 = Reactor.BurnUp.Isotopes.FirstOrDefault(x => x.Name == "Pb-211"); iso10.HalfLife = 2.17E3; iso10.CrossSections[Constants.REACT.N_G].AvgCs = 0.0; * var iso11 = Reactor.BurnUp.Isotopes.FirstOrDefault(x => x.Name == "Bi-209"); iso11.HalfLife = 1.0E40; iso11.CrossSections[Constants.REACT.N_G].AvgCs = 0.0403781; * var iso12 = Reactor.BurnUp.Isotopes.FirstOrDefault(x => x.Name == "Bi-210"); iso12.HalfLife = 4.33E5; iso12.CrossSections[Constants.REACT.N_G].AvgCs = 0.0; * var iso13 = Reactor.BurnUp.Isotopes.FirstOrDefault(x => x.Name == "Bi-211"); iso13.HalfLife = 1.28E2; iso13.CrossSections[Constants.REACT.N_G].AvgCs = 0.0; * var iso14 = Reactor.BurnUp.Isotopes.FirstOrDefault(x => x.Name == "Po-210"); iso14.HalfLife = 1.2E7; iso14.CrossSections[Constants.REACT.N_G].AvgCs = 0.030174702; * var iso15 = Reactor.BurnUp.Isotopes.FirstOrDefault(x => x.Name == "Po-211"); iso15.HalfLife = 5.16E-1; //iso15.CrossSections[Constants.REACT.N_G].AvgCs = 0.0; */ //Reactor.BurnUp.setCaptureProbabilityMatrix(); //Reactor.BurnUp.setDecayProbabilityMatrix(); //Reactor.BurnUp.SetBurnMatrix(); //CalculationView.PrintMatrix<double>(terminal, Reactor.BurnUp.Matrix); IsBurnupSet = true; }
private void FormMain_Load(object sender, EventArgs e) { double Flux = 1.0E30; // 1/cm^2/s double StarTemperatue = 3000; // Kelvin neutronSpectra = new NeutronSpectra(Flux, StarTemperatue); using (StreamWriter writer = new StreamWriter("dataNeutron.dat")) { double en = 1E-6; for (int i = 0; i < 35; i++) { var data = NeutronSpectra.MaxwellCurve(en, StarTemperatue); writer.WriteLine($"{en}\t{data}"); en = en * 10; } } var task = Task.Run(() => ReadAllNuclearData()); }
public void SetIsotopesFlux(List <Isotope> isotopes, NeutronSpectra neutronSpectra) { NeutronSpectra = neutronSpectra; BurnUp = new BurnUp(isotopes, neutronSpectra); }
private void initialize(int count, NeutronSpectra neutronSpectra) { setAvgCrossSections(neutronSpectra); initilaize(count); }
public BurnUp(List <Isotope> isotopes, NeutronSpectra neutronSpectra, List <Macs> macsList) { Isotopes = isotopes; NeutronSpectra = neutronSpectra; initialize(isotopes.Count, macsList); }
public BurnUp(List <Isotope> isotopes, NeutronSpectra neutronSpectra) { Isotopes = isotopes; NeutronSpectra = neutronSpectra; initialize(isotopes.Count, neutronSpectra); }