Esempio n. 1
0
 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)
 {
 }
Esempio n. 2
0
 public Builder(IStructuralModel model, ISolver solver, INonLinearProvider provider, int numIncrements) :
     base(model, solver, provider, numIncrements)
 {
     MaxIterationsPerIncrement     = 1000;
     NumIterationsForMatrixRebuild = 1;
     ResidualTolerance             = 1E-3;
 }
Esempio n. 3
0
 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();
        }
Esempio n. 5
0
 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();
        }