domainDecomp.hh

Go to the documentation of this file.
1 
6 #ifndef solverDomainDecomp_hh
7 #define solverDomainDecomp_hh
8 
9 #include "basics/typedefs.hh"
10 #include "operator/compositions.hh"
11 #include "operator/solverFabric.hh"
12 #include "operator/submatrix.hh"
13 #include "space/domainDecomp.hh"
14 #include "toolbox/sequence.hh"
15 #include "toolbox/set.hh"
16 
17 namespace concepts {
18 
19  // ************************************************************** DDSolver **
20 
32  template<class F, class G = typename Realtype<F>::type>
33  class DDSolver : public Operator<F> {
34  public:
45  DDSolver(DDSpace<G>& spc, Sequence<SparseMatrix<F>*>& A, bool explSchur,
46  SolverFabric<F>& innerSolver,
47  SolverFabric<F>& schurComplSolver,
48  SolverFabric<F>* schurComplPrecond = 0);
49  virtual ~DDSolver();
53  virtual void operator()(const Function<F>& fncY, Function<F>& fncX);
54  void operator()(const Vector<F>& fncY, Vector<F>& fncX);
55  protected:
56  virtual std::ostream& info(std::ostream& os) const;
57  private:
63  uint n_;
82  };
83 
84 
85 } // namespace concepts
86 
87 #endif // solverDomainDecomp_hh
88 
Operator< F > * S_inv_
Solver of Schur complement system.
Definition: domainDecomp.hh:81
virtual void operator()(const Function< F > &fncY, Function< F > &fncX)
Application operator.
DDSpace< G > & spc_
Domain decomposition space.
Definition: domainDecomp.hh:59
Sequence< const SparseMatrix< F > * > A_
Sequence of matrices.
Definition: domainDecomp.hh:69
Sequence< SubMatrixN< SparseMatrix< F > > * > A_BI_
Definition: domainDecomp.hh:73
Abstract class for a function.
Definition: basis.hh:21
virtual std::ostream & info(std::ostream &os) const
Domain Decomposition Solver.
Definition: domainDecomp.hh:33
Sequence< SubMatrixN< SparseMatrix< F > > * > A_IB_
Definition: domainDecomp.hh:73
Sequence< Operator< F > * > A_II_inv_
Sequence of solvers for A_II.
Definition: domainDecomp.hh:75
Set< IndexRange > indicesB_
Indices of all the boundary between any two domains.
Definition: domainDecomp.hh:61
Set< uint > domains_
Domains with inner degrees of freedom.
Definition: domainDecomp.hh:65
Sequence< SubMatrixN< SparseMatrix< F > > * > A_II_
Sequence of matrices of inner-inner, inner-boundary, boundary-inner, and boundary-boundary combinatio...
Definition: domainDecomp.hh:73
Abstract fabric class for linear solvers.
Definition: jdbsym.hh:16
void operator()(const Vector< F > &fncY, Vector< F > &fncX)
Abstract class for an operator.
Definition: ARPACK.hh:16
Sequence with operations, output operator, and method of the particular element types.
Definition: sequence.hh:39
Operator< F > * S_0_inv_
Inverse of Schur complement as preconditioner.
Definition: domainDecomp.hh:79
DummySpace< G > * spc_B_
Space of the boundary indices.
Definition: domainDecomp.hh:67
uint n_
Size of the reduced system.
Definition: domainDecomp.hh:63
Sequence< SubMatrixN< SparseMatrix< F > > * > A_BB_
Definition: domainDecomp.hh:73
Space for a given dimension but without more functionality.
Definition: space.hh:367
Sequence< Operator< F > * > S_
Sequence of Schur complements, first is S_0, second S_0+S_1, ...
Definition: domainDecomp.hh:77
Basic namespace for Concepts-2.
Definition: pml_formula.h:16
DDSolver(DDSpace< G > &spc, Sequence< SparseMatrix< F > * > &A, bool explSchur, SolverFabric< F > &innerSolver, SolverFabric< F > &schurComplSolver, SolverFabric< F > *schurComplPrecond=0)
Constructor.
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich