示例#1
0
        public static Results RunExample()
        {
            IAssembly elementsAssembly = CreateAssembly();

            elementsAssembly.CreateElementsAssembly();
            elementsAssembly.ActivateBoundaryConditions = true;
            double[,] globalStiffnessMatrix             = elementsAssembly.CreateTotalStiffnessMatrix();

            ISolver newSolu = new StaticSolver();

            newSolu.LinearScheme = new PCGSolver();

            double[] externalForces = new double[] { 20000, 0, -25000 };
            newSolu.AssemblyData = elementsAssembly;
            newSolu.Solve(externalForces);
            newSolu.PrintSolution();
            return(new Results());
        }
        public static void RunExample()
        {
            IAssembly elementsAssembly = CreateAssembly();

            elementsAssembly.CreateElementsAssembly();
            elementsAssembly.ActivateBoundaryConditions = true;
            double[,] globalStiffnessMatrix             = elementsAssembly.CreateTotalStiffnessMatrix();

            ISolver newSolu = new StaticSolver();

            newSolu.LinearScheme            = new CholeskyFactorization();
            newSolu.NonLinearScheme         = new LoadControlledNewtonRaphson();
            newSolu.ActivateNonLinearSolver = true;

            double[] externalForces = new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2000000, 0 };
            newSolu.AssemblyData = elementsAssembly;
            newSolu.Solve(externalForces);
            newSolu.PrintSolution();
        }
示例#3
0
        public static void RunStaticExample()
        {
            IAssembly elementsAssembly = CreateAssembly();

            elementsAssembly.CreateElementsAssembly();
            elementsAssembly.ActivateBoundaryConditions = true;
            double[,] globalStiffnessMatrix             = elementsAssembly.CreateTotalStiffnessMatrix();

            ISolver newSolu = new StaticSolver();

            newSolu.LinearScheme                      = new BiCGSTABSolver();
            newSolu.NonLinearScheme                   = new NewtonIterations();
            newSolu.ActivateNonLinearSolver           = true;
            newSolu.NonLinearScheme.numberOfLoadSteps = 15;

            double[] externalForces = new double[] { 0, 0, 0, 0, -4 * 2200000, 0, 0, 0, 0, 0, 0, 0 };
            newSolu.AssemblyData = elementsAssembly;
            newSolu.Solve(externalForces);
            newSolu.PrintSolution();
        }
示例#4
0
        public static Results RunStaticExample()
        {
            IAssembly elementsAssembly = CreateAssembly();

            elementsAssembly.CreateElementsAssembly();
            elementsAssembly.ActivateBoundaryConditions = true;
            double[,] globalStiffnessMatrix             = elementsAssembly.CreateTotalStiffnessMatrix();

            ISolver newSolu = new StaticSolver();

            newSolu.LinearScheme                      = new PCGSolver();
            newSolu.NonLinearScheme                   = new LoadControlledNewtonRaphson();
            newSolu.ActivateNonLinearSolver           = false;
            newSolu.NonLinearScheme.numberOfLoadSteps = 10;

            double[] externalForces = new double[] { 0, 0, 1e9, -1e9, 0, -1e9, 0, 0 };
            newSolu.AssemblyData = elementsAssembly;
            newSolu.Solve(externalForces);
            newSolu.PrintSolution();
            return(new Results());
        }
示例#5
0
        public static Results RunStaticExample()
        {
            double T0 = 1.0;
            double kc = 1.0;

            IAssembly elementsAssembly = CreateAssembly();

            elementsAssembly.CreateElementsAssembly();
            elementsAssembly.ActivateBoundaryConditions = true;
            double[,] globalStiffnessMatrix             = elementsAssembly.CreateTotalStiffnessMatrix();

            ISolver newSolu = new StaticSolver();

            newSolu.LinearScheme            = new PCGSolver();
            newSolu.ActivateNonLinearSolver = false;

            double[] externalForces = new double[] { 0.0, 0.0, 0.0, (T0 + Math.Sqrt(3.0) * T0) * kc / 6.0, (2.0 * T0 + Math.Sqrt(3.0) * T0 + T0) * kc / 6.0, (T0 + Math.Sqrt(3.0) * T0) * kc / 6.0 };
            newSolu.AssemblyData = elementsAssembly;
            newSolu.Solve(externalForces);
            newSolu.PrintSolution();
            double[] kati = newSolu.GetSolution();
            return(new Results());
        }
示例#6
0
        public void RunStaticExample()
        {
            IAssembly elementsAssembly = CreateAssembly();

            elementsAssembly.CreateElementsAssembly();
            elementsAssembly.ActivateBoundaryConditions = true;
            //double[,] globalStiffnessMatrix = elementsAssembly.CreateTotalStiffnessMatrix();

            ISolver newSolu = new StaticSolver();

            newSolu.LinearScheme                      = new PCGSolver();
            newSolu.NonLinearScheme                   = new LoadControlledNewtonRaphson();
            newSolu.ActivateNonLinearSolver           = true;
            newSolu.NonLinearScheme.numberOfLoadSteps = 100;

            double[] externalForces = new double[462];
            for (int i = 441; i <= 462; i += 2)
            {
                externalForces[i] = -10000.0;
            }
            newSolu.AssemblyData = elementsAssembly;
            newSolu.Solve(externalForces);
            newSolu.PrintSolution();
        }