예제 #1
0
 private void buttonCalculatePopulations_Click(object sender, EventArgs e)
 {
     precursors = readPrecursorsGrid();
     reactor    = new Reactor(criticalityVariations, precursors);
     Display();
     buttonCalculatePopulations.Visible = false;
 }
예제 #2
0
        private Precursors readPrecursorsGrid()
        {
            Precursors precursors = new Precursors();
            bool       atLeastOnePrecursorActive = false;

            foreach (DataGridViewRow r in dataGridViewPrecursors.Rows)
            {
                if (r.Cells[2].Value != null)
                {
                    bool active = bool.Parse(r.Cells[2].Value.ToString());
                    if (active)
                    {
                        atLeastOnePrecursorActive = true;
                    }
                    try
                    {
                        double    beta = double.Parse(r.Cells[0].Value.ToString());
                        double    tau  = double.Parse(r.Cells[1].Value.ToString());
                        Precursor p    = new Precursor(beta, tau, active);
                        precursors.add(p);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
            }
            if (!atLeastOnePrecursorActive)
            {
                MessageBox.Show("At least one precursor must be active");
            }
            displayGlobalPrecursor(precursors);
            return(precursors);
        }
예제 #3
0
 public Precursors(Precursors precursors)
 {
     items = new List <Precursor>();
     foreach (Precursor p in precursors.Items)
     {
         this.add(p);
     }
 }
예제 #4
0
        private void dataGridViewPrecursors_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            if (!dataGridUpdate)
            {
                buttonCalculatePopulations.Visible = true;
                precursors = readPrecursorsGrid();
                saved      = false;
            }
#if DEBUG
            //Console.WriteLine("CellValueChanged");
#endif
        }
예제 #5
0
 void criticalityPanel1_OnCriticalityChange(object sender, CriticalityVariationsEventArgs e)
 {
     criticalityVariations = e.CriticalityVariationsUpdated;
     if (buttonCalculatePopulations.Visible)
     {
         precursors = readPrecursorsGrid();
     }
     reactor = new Reactor(criticalityVariations, precursors);
     Display();
     buttonCalculatePopulations.Visible = false;
     saved = false;
     //throw new NotImplementedException();
 }
예제 #6
0
 private void displayGlobalPrecursor(Precursors precursors)
 {
     if (precursors.Items.Count >= 1)
     {
         labelGloBalPrecursorBeta.Text = (precursors.GlobalPrecursor.Beta * 100000).ToString();
         labelGlobalPrecursorTau.Text  = precursors.GlobalPrecursor.Tau.ToString();
     }
     else
     {
         labelGloBalPrecursorBeta.Text = "0";
         labelGlobalPrecursorTau.Text  = "0";
     }
 }
예제 #7
0
 public Reactor(CriticalityVariations cv, Precursors p, Double n, Double s, Double lStar)
 {
     this.cv         = cv;
     this.precursors = p;
     this.balancedPrecursorAtStartup = true;
     this.initialNeutronPop          = n;
     this.timeSpan              = cv.TimeSpan;
     this.source                = s;
     this.lStar                 = lStar;
     this.timeSteps             = new List <DataPoint>();
     this.populationAtEveryStep = new List <DataPoint>();
     this.populationAtEveryStep.Add(new DataPoint(0, n)); //initialise ne nombre de neutrons à n à l'instant 0 secondes
     calculatePopulations();
 }
예제 #8
0
 private void UpdateDataGridViewPrecursors(Precursors precursors)
 {
     dataGridUpdate = true;
     dataGridViewPrecursors.Rows.Clear();
     foreach (Precursor p in precursors.Items)
     {
         DataGridViewRow dataGridViewRow = new DataGridViewRow();
         dataGridViewRow.CreateCells(dataGridViewPrecursors);
         dataGridViewRow.SetValues(p.Beta * 100000, p.Tau, p.active);
         dataGridViewPrecursors.Rows.Add(dataGridViewRow);
     }
     buttonCalculatePopulations.Visible = false;
     displayGlobalPrecursor(precursors);
     dataGridUpdate = false;
 }
예제 #9
0
        private void openFile(string fileName)
        {
            Stream                   stream    = new FileStream(fileName, FileMode.Open);
            BinaryFormatter          formatter = new BinaryFormatter();
            ExperimentSerializedData esd       = (ExperimentSerializedData)formatter.Deserialize(stream);

            criticalityVariations = new CriticalityVariations(esd.criticalityVariations);
            precursors            = new Precursors(esd.precursors);
            stream.Close();
            stream.Dispose();
            reactor = new Reactor(criticalityVariations, precursors);
            UpdateDataGridViewPrecursors(precursors);
            Display();
            buttonCalculatePopulations.Visible = false;
        }
예제 #10
0
 private void buttonCalculateGlobalPrecursor_Click(object sender, EventArgs e)
 {
     precursors = readPrecursorsGrid();
 }
예제 #11
0
 public ExperimentSerializedData(CriticalityVariations cvs, Precursors ps)
 {
     this.criticalityVariations = cvs;
     this.precursors            = ps;
 }
예제 #12
0
 public Reactor(CriticalityVariations cv, Precursors p) : this(cv, p, 1, 1, 0.0001)
 {
 }