private LoadControlAnalyzer(IStructuralModel model, ISolver solver, INonLinearProvider provider, IReadOnlyDictionary <int, INonLinearSubdomainUpdater> subdomainUpdaters, int numIncrements, int maxIterationsPerIncrement, int numIterationsForMatrixRebuild, double residualTolerance) : base(model, solver, provider, subdomainUpdaters, numIncrements, maxIterationsPerIncrement, numIterationsForMatrixRebuild, residualTolerance) { }
public Builder(IStructuralModel model, ISolver solver, INonLinearProvider provider, int numIncrements) : base(model, solver, provider, numIncrements) { MaxIterationsPerIncrement = 1000; NumIterationsForMatrixRebuild = 1; ResidualTolerance = 1E-3; }
protected NonLinearAnalyzerBuilderBase(IModel model, ISolver solver, INonLinearProvider provider, int numIncrements) { //TODO: this should belong to all (child) analyzer builders this.model = model; this.solver = solver; this.provider = provider; this.numIncrements = numIncrements; SubdomainUpdaters = CreateDefaultSubdomainUpdaters(); }
public NewtonRaphsonNonLinearAnalyzer(ISolver solver, IDictionary <int, ISolverSubdomain> subdomains, INonLinearProvider provider, int increments, int totalDOFs) { this.solver = solver; this.subdomains = subdomains; this.provider = provider; this.increments = increments; this.totalDOFs = totalDOFs; this.globalRHS = new Vector <double>(totalDOFs); InitializeInternalVectors(); }
internal NonLinearAnalyzerBase(IStructuralModel model, ISolver solver, INonLinearProvider provider, IReadOnlyDictionary <int, INonLinearSubdomainUpdater> subdomainUpdaters, int numIncrements, int maxIterationsPerIncrement, int numIterationsForMatrixRebuild, double residualTolerance) { this.model = model; this.solver = solver; this.provider = provider; this.subdomainUpdaters = subdomainUpdaters; this.linearSystems = solver.LinearSystems; this.numIncrements = numIncrements; this.maxIterationsPerIncrement = maxIterationsPerIncrement; this.numIterationsForMatrixRebuild = numIterationsForMatrixRebuild; this.residualTolerance = residualTolerance; }
public MicrostructureBvpNRNLAnalyzer(IStructuralModel model, ISolver solver, Dictionary <int, NonLinearSubdomainUpdaterWithInitialConditions> subdomainUpdaters, INonLinearProvider provider, int increments, Dictionary <int, IVector> uInitialFreeDOFDisplacementsPerSubdomain, Dictionary <int, Node> boundaryNodes, Dictionary <int, Dictionary <IDofType, double> > initialConvergedBoundaryDisplacements, Dictionary <int, Dictionary <IDofType, double> > totalBoundaryDisplacements, Dictionary <int, EquivalentContributionsAssebler> equivalentContributionsAssemblers)//, ISubdomainGlobalMapping[] mappings) { this.model = model; this.solver = solver; this.subdomainUpdaters = subdomainUpdaters; //this.mappings = mappings; this.linearSystems = solver.LinearSystems; this.provider = provider; this.increments = increments; //this.globalRhs = Vector.CreateZero(model.GlobalDofOrdering.NumGlobalFreeDofs); this.u = uInitialFreeDOFDisplacementsPerSubdomain; //prosthiki MS, TODO:possibly check for compatibility elements format: u.Add(subdomain.ID, new Vector(subdomain.RHS.Length)); //this.uPlusdu = uInitialFreeDOFDisplacementsPerSubdomain; //prosthiki MS: commented out possible pass by reference this.boundaryNodes = boundaryNodes; this.initialConvergedBoundaryDisplacements = initialConvergedBoundaryDisplacements; this.totalBoundaryDisplacements = totalBoundaryDisplacements; this.equivalentContributionsAssemblers = equivalentContributionsAssemblers; //InitializeInternalVectors(); }