private static void TestWithOpensees() { var model = StructureGenerator.Generate3DBarElementGrid(5, 5, 5); StructureGenerator.AddRandomiseLoading(model, true, false, LoadCase.DefaultLoadCase); StructureGenerator.AddRandomDisplacements(model, 0.3); model.Solve_MPC(); OpenseesValidator.OpenseesValidate(model, LoadCase.DefaultLoadCase, false); }
private static void Test_P_Delta_matrix() { var model = StructureGenerator.Generate3DFrameElementGrid(2, 2, 2); var zs = model.Nodes .Where(i => i.Constraints != Constraints.Fixed) .Select(i => i.Location.Z).Distinct().ToList(); foreach (var z in zs) { var relm = new RigidElement_MPC(); var relm2 = new RigidElement(); relm.Nodes.AddRange(model.Nodes.Where(i => i.Location.Z == z)); relm2.Nodes.AddRange(model.Nodes.Where(i => i.Location.Z == z)); model.MpcElements.Add(relm); model.RigidElements.Add(relm2); relm.UseForAllLoads = true; relm2.UseForAllLoads = true; } //StructureGenerator.AddRandomDisplacements(model, 0.1); /**/ foreach (var node in model.Nodes) { if (node.Constraints == Constraints.Fixed) { node.Settlements.Add(new Settlement(new Displacement(1, 0, 0, 0, 0, 0))); node.Loads.Clear(); } } /**/ StructureGenerator.AddRandomiseLoading(model, true, false, LoadCase.DefaultLoadCase); //model.Clone(); #region #endregion model.Solve(); //CalcUtil.GenerateP_Delta_Mpc(model, LoadCase.DefaultLoadCase,new GaussRrefFinder()); model.LastResult.AddAnalysisResult(LoadCase.DefaultLoadCase); model.LastResult.AddAnalysisResult_MPC(LoadCase.DefaultLoadCase); }
private void CreateGrid_Click(object sender, RoutedEventArgs e) { var wnd = new Window2(); var res = wnd.ShowDialog(); if (!res.HasValue || !res.Value) { return; } var grd = StructureGenerator.Generate3DFrameElementGrid(wnd.Context.XSpans + 1, wnd.Context.YSpans + 1, wnd.Context.ZSpans + 1); if (wnd.Context.RandomLoads) { StructureGenerator.AddRandomiseLoading(grd, true, false); } Context.Model = grd; }
private static void TestIntelMkl() { var oldPath = Environment.GetEnvironmentVariable("PATH"); var newPath = oldPath + @"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2018.0.124\windows\redist\intel64_win\mkl;"; Environment.SetEnvironmentVariable("PATH", newPath); //BriefFiniteElementNet.PardisoThing.test_pardiso.Main(null); return; var model = StructureGenerator.Generate3DBarElementGrid(1, 1, 2); //model.Nodes[4].Constraints = model.Nodes[5].Constraints = model.Nodes[6].Constraints = Constraints.Fixed; //model.Nodes[7].Constraints = Constraint.FromString("011101"); var t = model.Nodes.Select(i => i.Constraints).ToArray(); StructureGenerator.AddRandomiseLoading(model, true, false, LoadCase.DefaultLoadCase); var config = new SolverConfiguration(); //config.SolverFactory = new IntelMklSolver.MklPardisoDirectSPDSolverFactory(); config.LoadCases.AddRange(new List <LoadCase>() { LoadCase.DefaultLoadCase }); model.Solve_MPC(config); //model.Solve(config); //model.Solve(); var tmp = model.LastResult.Displacements.First().Value; }
static void TestGrid() { var model = StructureGenerator.Generate3DBarElementGrid(15, 15, 15); //StructureGenerator.AddRandomiseNodalLoads(model, LoadCase.DefaultLoadCase); StructureGenerator.AddRandomiseLoading(model, true, true, LoadCase.DefaultLoadCase); model.Trace.Listeners.Add(new ConsoleTraceListener()); model.Solve_MPC(); Console.WriteLine("Total matrix rents: {0}", model.MatrixPool.TotalRents); Console.WriteLine("Total matrix creates: {0}", Matrix.CreateCount); Console.WriteLine("Total matrix destructs: {0}", Matrix.DistructCount); Console.WriteLine("hit: {0}", EulerBernoulliBeamHelper.hit); Console.WriteLine("miss: {0}", EulerBernoulliBeamHelper.miss); var totHit = model.Elements.Sum(i => i.CacheHit); var totMis = model.Elements.Sum(i => i.CacheMiss); Console.ReadKey(); }