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); }
public SkylineFetiDPSubdomainMatrixManager(ISubdomain subdomain, IReorderingAlgorithm reordering) { this.linearSystem = new SingleSubdomainSystem <SkylineMatrix>(subdomain); this.reordering = reordering; }
public DenseFeti1SubdomainMatrixManager(ISubdomain subdomain) { this.linearSystem = new SingleSubdomainSystem <SkylineMatrix>(subdomain); }