private void TestCollocationPointCreation() { var model = new CollocationModel(); ModelCreator modelCreator = new ModelCreator(model); string filename = "..\\..\\..\\InputFiles\\PlateWithHole.txt"; IsogeometricReader modelReader = new IsogeometricReader(modelCreator, filename); modelReader.CreateCollocationModelFromFile(); //var solverBuilder = new SuiteSparseSolver.Builder(); //solverBuilder.DofOrderer = new DofOrderer( // new NodeMajorDofOrderingStrategy(), new NullReordering()); var solverBuilder = new GmresSolver.Builder(); ISolver solver = new GmresSolver(model, new AsymmetricDofOrderer(new RowDofOrderingStrategy()), new DofOrderer(new NodeMajorDofOrderingStrategy(), new NullReordering())); // Structural problem provider var provider = new ProblemStructural(model, solver); // Linear static analysis var childAnalyzer = new LinearAnalyzer(model, solver, provider); var parentAnalyzer = new StaticAnalyzer(model, solver, provider, childAnalyzer); // Run the analysis parentAnalyzer.Initialize(); parentAnalyzer.BuildMatrices(); var k = solver.LinearSystems[0].Matrix; Matrix <double> kmatlab = MathNet.Numerics.LinearAlgebra.CreateMatrix.Dense <double>(k.NumRows, k.NumColumns); for (int i = 0; i < k.NumRows; i++) { for (int j = 0; j < k.NumColumns; j++) { kmatlab[i, j] = k[i, j]; } } MatlabWriter.Write("..\\..\\..\\InputFiles\\KcolMsolve.mat", kmatlab, "Ktotal"); }
public void CollocationPoint3DMatrix() { var model = new CollocationModel(); ModelCreator modelCreator = new ModelCreator(model); string filename = "..\\..\\..\\InputFiles\\Collocation 3D.txt"; IsogeometricReader modelReader = new IsogeometricReader(modelCreator, filename); modelReader.CreateCollocationModelFromFile(); var gmresBuilder = new GmresSolver.Builder(); ISolver solver = gmresBuilder.BuildSolver(model); // Structural problem provider var provider = new ProblemStructural(model, solver); // Linear static analysis var childAnalyzer = new LinearAnalyzer(model, solver, provider); var parentAnalyzer = new StaticAnalyzer(model, solver, provider, childAnalyzer); // Run the analysis parentAnalyzer.Initialize(); parentAnalyzer.BuildMatrices(); var k = solver.LinearSystems[0].Matrix; Matrix <double> stiffnessMatrixExpected = MatlabReader.Read <double>("..\\..\\..\\InputFiles\\Kcol3D.mat", "Ktotal"); for (int i = 0; i < k.NumRows; i++) { for (int j = 0; j < k.NumColumns; j++) { Utilities.AreValuesEqual(stiffnessMatrixExpected[i, j], k[i, j], 10e-9); } } }