• Alexis SALZMAN's avatar
    Xdomaindecomp: Add a new library to deal with domain decomposition resolution · 195533de
    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