Ejemplo n.º 1
0
        public IDictionary <string, AppControl.BoundaryValueCollection> GetBoundaryConfig()
        {
            var config = new Dictionary <string, AppControl.BoundaryValueCollection>();

            config.Add("wall_top", new AppControl.BoundaryValueCollection());
            config.Add("wall_bottom", new AppControl.BoundaryValueCollection());

            if (!periodic)
            {
                if (!this.ROT.ApproximateEquals(AffineTrafo.Some2DRotation(0.0)))
                {
                    throw new NotSupportedException();
                }

                double A_a0, A_a1, A_a2, B_a0, B_a1, B_a2;
                this.ParabolaCoeffs_A(out A_a2, out A_a1, out A_a0);
                this.ParabolaCoeffs_B(out B_a2, out B_a1, out B_a0);

                config.Add("velocity_inlet", new AppControl.BoundaryValueCollection());
                config["velocity_inlet"].Evaluators.Add(
                    VariableNames.Velocity_d(0) + "#A",
                    (X, t) => A_a0 + A_a1 * X[1] + A_a2 * X[1] * X[1]);
                config["velocity_inlet"].Evaluators.Add(
                    VariableNames.Velocity_d(0) + "#B",
                    (X, t) => B_a0 + B_a1 * X[1] + B_a2 * X[1] * X[1]);

                config.Add("Pressure_Outlet", new AppControl.BoundaryValueCollection());
            }

            return(config);
        }
Ejemplo n.º 2
0
 public ChannelTest(double angle)
 {
     //double angle = 0.0;
     //double angle = 60.0 * Math.PI / 180.0;
     ROT    = AffineTrafo.Some2DRotation(angle);
     ROTinv = ROT.Invert();
 }
Ejemplo n.º 3
0
        public IDictionary <string, AppControl.BoundaryValueCollection> GetBoundaryConfig()
        {
            var config = new Dictionary <string, AppControl.BoundaryValueCollection>();

            config.Add("wall_top", new AppControl.BoundaryValueCollection());
            config.Add("wall_bottom", new AppControl.BoundaryValueCollection());

            if (!periodic)
            {
                if (!this.ROT.ApproximateEquals(AffineTrafo.Some2DRotation(0.0)))
                {
                    throw new NotSupportedException();
                }

                config.Add("velocity_inlet", new AppControl.BoundaryValueCollection());
                config["velocity_inlet"].Evaluators.Add(
                    VariableNames.Velocity_d(0) + "#A",
                    (X, t) => 1.0 - X[1] * X[1]);
                config["velocity_inlet"].Evaluators.Add(
                    VariableNames.Velocity_d(0) + "#B",
                    (X, t) => 1.0 - X[1] * X[1]);

                config.Add("Pressure_Outlet", new AppControl.BoundaryValueCollection());
            }

            return(config);
        }