Beispiel #1
0
        public void Simulation_tic()
        {
            double change = 0;

            Isotope.Radionuclide prev = Isotope.Radionuclide.Ra_226;

            /*
             * for(int i=0; i < isotope_num-1; i++)
             * {
             *  //((Isotope)atoms[i]).Decay(atoms[i + 1], time_tic); // Do it!
             *
             *
             * }
             */

            foreach (Isotope isotope in atoms)
            {
                //int next_index = atoms.IndexOf(isotope) + 1;
                if (isotope.Get_progeny() != prev)
                {
                    change = 0;
                }
                if (isotope.Get_activity() != 0)
                {
                    change = isotope.Decay(time_tic, change);
                }
                prev = isotope.Get_progeny();
            }
        }
Beispiel #2
0
        public List <double> Simulate_time(double time = 0, Isotope.Radionuclide nuc = Isotope.Radionuclide.Rn_222)
        {
            List <double> data              = new List <double>();
            double        current_time      = 0;
            double        measured_activity = 0;

            while (current_time < time)
            {
                Simulation_tic();
                foreach (Isotope isotope in atoms)
                {
                    if (isotope.Get_Radionuclide() == nuc)
                    {
                        measured_activity = isotope.Get_activity();
                    }
                }
                data.Add(measured_activity);
                current_time += time_tic;
            }
            return(data);
        }