public static void EmbeddedEBEinMatrix_NewtonRaphson() { // Model creation var model = new Model(); // Subdomains //model.SubdomainsDictionary.Add(subdomainID, new Subdomain() { ID = 1 }); model.SubdomainsDictionary.Add(subdomainID, new Subdomain(subdomainID)); // Variables int monitorNode = 41; IDofType monitorDof = StructuralDof.TranslationZ; // Choose model EmbeddedEBEModelBuilder.EmbeddedExampleBuilder(model); //----------------------------------------------------------------------------------------------------------- // Model // Choose linear equation system solver //var solverBuilder = new SkylineSolver.Builder(); //SkylineSolver solver = solverBuilder.BuildSolver(model); var solverBuilder = new SuiteSparseSolver.Builder(); SuiteSparseSolver solver = solverBuilder.BuildSolver(model); // Choose the provider of the problem -> here a structural problem var provider = new ProblemStructural(model, solver); // Choose child analyzer -> Child: NewtonRaphsonNonLinearAnalyzer int increments = 100; var childAnalyzerBuilder = new LoadControlAnalyzer.Builder(model, solver, provider, increments) { ResidualTolerance = 1E-03, MaxIterationsPerIncrement = 10 }; LoadControlAnalyzer childAnalyzer = childAnalyzerBuilder.Build(); // Choose parent analyzer -> Parent: Static var parentAnalyzer = new StaticAnalyzer(model, solver, provider, childAnalyzer); // Request output string outputFile = outputDirectory + "\\CNT-Embedded-3D_Results.txt"; var logger = new TotalLoadsDisplacementsPerIncrementLog(model.SubdomainsDictionary[subdomainID], increments, model.NodesDictionary[monitorNode], monitorDof, outputFile); childAnalyzer.IncrementalLogs.Add(subdomainID, logger); // Run the analysis parentAnalyzer.Initialize(); parentAnalyzer.Solve(); // Create Paraview File var paraview = new ParaviewEmbedded3D(model, solver.LinearSystems[0].Solution, "test"); paraview.CreateParaviewFile(); }
public static void EmbeddedEBEinMatrix_DisplacementControl() { // Model creation var model = new Model(); // Subdomains //model.SubdomainsDictionary.Add(subdomainID, new Subdomain() { ID = 1 }); model.SubdomainsDictionary.Add(subdomainID, new Subdomain(subdomainID)); // Variables int monitorNode = 161; IDofType monitorDof = StructuralDof.TranslationZ; // Choose model EmbeddedEBEModelBuilder.EmbeddedExampleBuilder(model); //----------------------------------------------------------------------------------------------------------- // Model // Choose linear equation system solver //var solverBuilder = new SkylineSolver.Builder(); //SkylineSolver solver = solverBuilder.BuildSolver(model); var solverBuilder = new SuiteSparseSolver.Builder(); SuiteSparseSolver solver = solverBuilder.BuildSolver(model); // Choose the provider of the problem -> here a structural problem var provider = new ProblemStructural(model, solver); // Choose child analyzer -> Child: DisplacementControl var subdomainUpdaters = new[] { new NonLinearSubdomainUpdater(model.SubdomainsDictionary[subdomainID]) }; int increments = 100; var childAnalyzerBuilder = new DisplacementControlAnalyzer.Builder(model, solver, provider, increments); DisplacementControlAnalyzer childAnalyzer = childAnalyzerBuilder.Build(); // Choose parent analyzer -> Parent: Static var parentAnalyzer = new StaticAnalyzer(model, solver, provider, childAnalyzer); // Request output string outputFile = outputDirectory + "\\CNT-Embedded-3D_Results.txt"; var logger = new TotalLoadsDisplacementsPerIncrementLog(model.SubdomainsDictionary[subdomainID], increments, model.NodesDictionary[monitorNode], monitorDof, outputFile); childAnalyzer.IncrementalLogs.Add(subdomainID, logger); // Run the analysis parentAnalyzer.Initialize(); parentAnalyzer.Solve(); }