コード例 #1
0
        public void CalculateOpticalConstants_Drude()
        {
            // Arrange
            var optConst = ParameterHelper.ReadOpticalConstants("opt_const.txt");

            var EpsInfinity = 3.9943;
            var OmegaP      = 1.369e+16;
            var DEps0       = 8.45e-1;
            var Gamma0      = 7.292e+13;

            var funcPermitivitty = new Dictionary <double, Complex>();

            foreach (var waveLength in optConst.WaveLengthList)
            {
                var omeg = SpectrumUnitConverter.Convert(waveLength / OpticalConstants.WaveLengthMultiplier,
                                                         SpectrumUnitType.WaveLength, SpectrumUnitType.CycleFrequency);
                var compl = EpsInfinity -
                            OmegaP * OmegaP /
                            (omeg * omeg -
                             Complex.ImaginaryOne * Gamma0 * omeg);
                funcPermitivitty.Add(waveLength, compl);
            }

            ParameterHelper.WriteOpticalConstants("opt_const_new.txt", funcPermitivitty);

            using (var gnuplot = new GnuPlot())
            {
                gnuplot.HoldOn();
                gnuplot.Plot(funcPermitivitty);

                var permitivittyList = getPermitivittyFunc(optConst);

                gnuplot.Plot(permitivittyList);
            }

            // Act

            // Assert
        }
コード例 #2
0
 /// <summary>
 /// Converts value to specified type.
 /// </summary>
 /// <param name="toType">To spectrum parameter type.</param>
 /// <returns>The value of spectrum parameter type.</returns>
 public double ToType(SpectrumUnitType toType)
 {
     return(SpectrumUnitConverter.Convert(this.value, this.type, toType));
 }