Exemple #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Initializing parameters ... ");
            var input = new Input();
            var room1 = new Room()
            {
                IsSource = true,
                L_x      = 5.09,
                L_y      = 4.12,
                L_z      = 4.15,
                X_s      = 2.0,
                Y_s      = 1.5,
                Z_s      = 1.5,
                T        = 2.68
            };
            var room2 = new Room()
            {
                L_x = 5.09,
                L_y = 4.12,
                L_z = 4.15,
                T   = 2.68
            };
            var room3 = new Room()
            {
                IsReceiving = true,
                L_x         = 5.09,
                L_y         = 4.12,
                L_z         = 4.15,
                T           = 2.68
            };

            input.Add(room1);
            input.Add(room2);
            input.Add(room3);
            var plate = new Plate()
            {
                L_x    = 3.25,
                L_y    = 2.95,
                DeltaX = 0.5,
                DeltaY = 0.5,
                Rho    = 2500,
                H      = 0.01,
                B      = Formula.ComputePlateBendingStiffness(62 * 10e9, 0.01, 0.24)
            };

            input.Add(plate);
            Console.WriteLine(input);

            // constants
            double f      = 400;
            double c      = 340;
            int    M      = 5;
            int    N      = 5;
            int    P      = 4;
            int    Q      = 4;
            double rhoAir = 1.217;

            // 2.36
            Console.WriteLine("Formula 2.36: acoustic wave expansion: ");

            var kz1 = Formula.ComputeAcousticWaveExpansion(room1, f, c, M, N);

            Console.WriteLine("Formula 2.36 - kz1");
            Console.WriteLine(ComplexMatrix.MatrixAsString(kz1));

            var kz2 = Formula.ComputeAcousticWaveExpansion(room2, f, c, M, N);

            Console.WriteLine("Formula 2.36 - kz2");
            Console.WriteLine(ComplexMatrix.MatrixAsString(kz2));

            var kz3 = Formula.ComputeAcousticWaveExpansion(room3, f, c, M, N);

            Console.WriteLine("Formula 2.36 - kz3");
            Console.WriteLine(ComplexMatrix.MatrixAsString(kz3));

            // 2.74
            var F = Formula.ComputeF(room1, M, N);

            Console.WriteLine("Formula 2.74 - F");
            Console.WriteLine(ComplexMatrix.MatrixAsString(F));

            // 2.84
            var C11 = Formula.ComputeC1(room1, f, c, M, N);

            Console.WriteLine("Formula 2.84 - C11");
            Console.WriteLine(ComplexMatrix.MatrixAsString(C11));

            // 2.85
            var C12 = Formula.ComputeC2(room1, f, c, M, N);

            Console.WriteLine("Formula 2.85 - C12");
            Console.WriteLine(ComplexMatrix.MatrixAsString(C12));

            // 2.86
            var N1 = Formula.ComputeNormsOfRoomWaveFunctions(room1, M, N);

            Console.WriteLine("Formula 2.86 - N1");
            Console.WriteLine(ComplexMatrix.MatrixAsString(N1));

            var N2 = Formula.ComputeNormsOfRoomWaveFunctions(room2, M, N);

            Console.WriteLine("Formula 2.86 - N2");
            Console.WriteLine(ComplexMatrix.MatrixAsString(N2));

            var N3 = Formula.ComputeNormsOfRoomWaveFunctions(room3, M, N);

            Console.WriteLine("Formula 2.86 - N3");
            Console.WriteLine(ComplexMatrix.MatrixAsString(N3));

            // 2.87
            var Prp = Formula.ComputePlateRoomProjectionCoefficients(plate, room1, M, N, P, Q);

            Console.WriteLine("Formula 2.87: plate room projection coefficients: ");
            Console.WriteLine(ComplexMatrix.MatrixAsString(Prp[0][0]));

            // 2.96
            var C13 = Formula.ComputeC3(room1, f, c, rhoAir, M, N);

            Console.WriteLine("Formula 2.96 - C13");
            Console.WriteLine(ComplexMatrix.MatrixAsString(C13));

            // 2.98
            var C23 = Formula.ComputeC3(room2, f, c, rhoAir, M, N);

            Console.WriteLine("Formula 2.98 - C23");
            Console.WriteLine(ComplexMatrix.MatrixAsString(C23));
        }