-
Alexis SALZMAN authored
This library is not indented to replace huge project like PETSC. It is just a little library to test basic domain decomposition method and provide some hint on those method in the context of eXlibris. A DomainManager folder contain the concept of encapsulating a double manager (that have to be in a prescribe state) to offer basic domain decomposition services: *provide a DeclareState method to set the state of the dofs *provide a Visit method to communicate with embedded double manager (write, read, ... via xWriteSolutionVisitor, ...) xDomainDecomp is the abstract class that describe this general concept A xDomainDecompSchur class instantiate a concrete version of this concept related with Schur complement usage. This version consider that a domain is held by only one proc. Schur dof are the one that are connected to remote proc. Other experimental concrete version (xDomainDecompSchurLarger and xDomainDecompSchurMultiProc) consider that a domain span on more than one proc but is fully contained on those proc (i.e a proc may not have part of different domain). A other folder, Solvers, hold the concept of linear solver for domain decomposition problem. It has the same interface as the last linear solver interface provided by SolverInterfaces library ( conectMatrix,symb,fact,solve). A folder MUMPS correspond to the concrete implementation of this domain solver with use of MUMPS as background solver. In particular xLinearDomainSolverMumpsSchurIterthe correspond to the context where domains are known by their Schur complement and the global condensed unassembled dense problem is solved by an iterative solver ( lalg::xBasicIterSolver). Those solver are driven by xDomainDecomp instance (traits).
195533de