コード例 #1
0
ファイル: AlphaBeta.cs プロジェクト: prisae/extreme
        public static AlphaBeta CreateFrom(ISection1D <IsotropyLayer> section1D)
        {
            int numberOf1DLayers = section1D.NumberOfLayers;
            var zeta             = section1D.GetAllSection1DZeta();

            var alpha1 = Enumerable.Repeat(Complex.One, numberOf1DLayers).ToArray();
            var beta1  = Enumerable.Repeat(Complex.One, numberOf1DLayers).ToArray();

            var alphaSigma = new Complex[numberOf1DLayers];
            var betaSigma  = new Complex[numberOf1DLayers];

            for (int k = 0; k < numberOf1DLayers - 1; k++)
            {
                alphaSigma[k] = zeta[k + 1] / zeta[k];
            }

            for (int k = 1; k < numberOf1DLayers; k++)
            {
                betaSigma[k] = zeta[k - 1] / zeta[k];
            }

            return(new AlphaBeta(alpha1, beta1, alphaSigma, betaSigma));
        }