Exemple #1
0
        protected SingleSubdomainRectangularSolverBase(IStructuralAsymmetricModel model, IAsymmetricDofOrderer dofRowOrderer,
                                                       IDofOrderer dofColOrderer, IGlobalMatrixRectangularAssembler <TMatrix> assembler, string name)
        {
            if (model.Subdomains.Count != 1)
            {
                throw new InvalidSolverException(
                          $"{name} can be used if there is only 1 subdomain");
            }
            this.model    = model;
            subdomain     = model.Subdomains[0];
            linearSystem  = new SingleSubdomainSystem <TMatrix>(subdomain);
            LinearSystems = new Dictionary <int, ILinearSystem>()
            {
                { subdomain.ID, linearSystem }
            };
            linearSystem.MatrixObservers.Add(this);

            this.dofRowOrderer = dofRowOrderer;
            this.dofColOrderer = dofColOrderer;
            this.assembler     = assembler;
            this.Logger        = new SolverLogger(name);
        }
Exemple #2
0
 public SkylineFetiDPSubdomainMatrixManager(ISubdomain subdomain, IReorderingAlgorithm reordering)
 {
     this.linearSystem = new SingleSubdomainSystem <SkylineMatrix>(subdomain);
     this.reordering   = reordering;
 }
Exemple #3
0
 public DenseFeti1SubdomainMatrixManager(ISubdomain subdomain)
 {
     this.linearSystem = new SingleSubdomainSystem <SkylineMatrix>(subdomain);
 }