Exemple #1
0
        public void FasterGetPrimaryFluorescentXrayIntensityTest()
        {
            var sp = new Stopwatch();
            sp.Start();

            var c = new Composition();
            c[79] = 0.5;
            c[47] = 0.5;

            var elements = c.Select(c1 => Elements.Get(c1.AtomicNumber)).ToArray();
            var spec = fluorescent.Conditions.TubeSpectrum;
            var compiled = new PreprocessedDatabase(db, elements, spec.Region, spec.Division);
            fluorescent.Database = compiled;

            Action<string, LineInfo> output =
                (name, li) =>
                    Console.WriteLine(name + ":\t{0:e4}", fluorescent.GetPrimaryFluorescentXrayIntensity(c, li));

            var lineGroups = db.LineGroups.Where(lg => c.Contains(lg.AtomicNumber));
            var q = from lg in lineGroups
                from l in lg.Lines
                select new LineInfo(lg.AtomicNumber, lg, l);

            foreach (var li in q)
                output(li.Name, li);

            sp.Stop();

            Console.WriteLine(sp.Elapsed);
        }