MueLu  Version of the Day
MueLu_ShiftedLaplacian_decl.hpp
Go to the documentation of this file.
1 // @HEADER
2 //
3 // ***********************************************************************
4 //
5 // MueLu: A package for multigrid based preconditioning
6 // Copyright 2012 Sandia Corporation
7 //
8 // Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
9 // the U.S. Government retains certain rights in this software.
10 //
11 // Redistribution and use in source and binary forms, with or without
12 // modification, are permitted provided that the following conditions are
13 // met:
14 //
15 // 1. Redistributions of source code must retain the above copyright
16 // notice, this list of conditions and the following disclaimer.
17 //
18 // 2. Redistributions in binary form must reproduce the above copyright
19 // notice, this list of conditions and the following disclaimer in the
20 // documentation and/or other materials provided with the distribution.
21 //
22 // 3. Neither the name of the Corporation nor the names of the
23 // contributors may be used to endorse or promote products derived from
24 // this software without specific prior written permission.
25 //
26 // THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
27 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
30 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
31 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
32 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
33 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 //
38 // Questions? Contact
39 // Jeremie Gaidamour (jngaida@sandia.gov)
40 // Jonathan Hu (jhu@sandia.gov)
41 // Ray Tuminaro (rstumin@sandia.gov)
42 //
43 // ***********************************************************************
44 //
45 // @HEADER
46 #ifndef MUELU_SHIFTEDLAPLACIAN_DECL_HPP
47 #define MUELU_SHIFTEDLAPLACIAN_DECL_HPP
48 
49 // Xpetra
50 #include <Xpetra_Matrix_fwd.hpp>
51 #include <Xpetra_VectorFactory_fwd.hpp>
52 #include <Xpetra_MultiVectorFactory_fwd.hpp>
53 #include <Xpetra_TpetraMultiVector.hpp>
54 
55 // MueLu
56 #include "MueLu.hpp"
57 #include "MueLu_ConfigDefs.hpp"
58 
59 #if defined(HAVE_MUELU_IFPACK2) and defined(HAVE_MUELU_TPETRA)
60 
61 #include <MueLu_BaseClass.hpp>
69 #include <MueLu_Hierarchy_fwd.hpp>
71 #include <MueLu_PFactory_fwd.hpp>
72 #include <MueLu_PgPFactory_fwd.hpp>
73 #include <MueLu_RAPFactory_fwd.hpp>
75 #include <MueLu_SaPFactory_fwd.hpp>
77 #include <MueLu_ShiftedLaplacianOperator.hpp>
83 #include <MueLu_Utilities_fwd.hpp>
84 
85 // Belos
86 #ifdef HAVE_MUELU_TPETRA_INST_INT_INT
87 #include <BelosConfigDefs.hpp>
88 #include <BelosLinearProblem.hpp>
89 #include <BelosSolverFactory.hpp>
90 #include <BelosTpetraAdapter.hpp>
91 #endif
92 
93 namespace MueLu {
94 
104  template <class Scalar = DefaultScalar,
107  class Node = DefaultNode>
108  class ShiftedLaplacian : public BaseClass {
109 #undef MUELU_SHIFTEDLAPLACIAN_SHORT
110 #include "MueLu_UseShortNames.hpp"
111 
112  typedef Tpetra::Vector<SC,LO,GO,NO> TVEC;
113  typedef Tpetra::MultiVector<SC,LO,GO,NO> TMV;
114  typedef Tpetra::Operator<SC,LO,GO,NO> OP;
115 #ifdef HAVE_MUELU_TPETRA_INST_INT_INT
116  typedef Belos::LinearProblem<SC,TMV,OP> LinearProblem;
117  typedef Belos::SolverManager<SC,TMV,OP> SolverManager;
118  typedef Belos::SolverFactory<SC,TMV,OP> SolverFactory;
119 #endif
120 
121  public:
122 
123  /*
124  FIXME 26-June-2015 JJH: This contructor is setting numerous defaults. However, they don't match the defaults
125  FIXME int the method setParameters(). There also isn't any parameter validation that I can see.
126  */
127 
130  numPDEs_(1),
131  Smoother_("schwarz"),
132  Aggregation_("uncoupled"),
133  Nullspace_("constant"),
134  numLevels_(5),
135  coarseGridSize_(100),
136  omega_(2.0*M_PI),
137  iters_(500),
138  blksize_(1),
139  tol_(1.0e-4),
140  nsweeps_(5),
141  ncycles_(1),
142  cycles_(8),
143  subiters_(10),
144  option_(1),
145  nproblems_(0),
146  solverType_(1),
147  restart_size_(100),
148  recycle_size_(25),
149  smoother_sweeps_(4),
150  smoother_damping_((SC)1.0),
151  krylov_type_(1),
154  ilu_leveloffill_(5.0),
155  ilu_abs_thresh_(0.0),
156  ilu_rel_thresh_(1.0),
158  ilu_drop_tol_(0.01),
159  ilu_fill_tol_(0.01),
160  ilu_relax_val_(1.0),
161  ilu_rowperm_("LargeDiag"),
162  ilu_colperm_("COLAMD"),
163  ilu_drop_rule_("DROP_BASIC"),
164  ilu_normtype_("INF_NORM"),
165  ilu_milutype_("SILU"),
166  schwarz_overlap_(0),
167  schwarz_usereorder_(true),
168  schwarz_combinemode_(Tpetra::ADD),
169  schwarz_ordermethod_("rcm"),
170  GridTransfersExist_(false),
171  isSymmetric_(true)
172  { }
173 
174  // Destructor
175  virtual ~ShiftedLaplacian();
176 
177  // Parameters
178  void setParameters(Teuchos::RCP< Teuchos::ParameterList > paramList);
179 
180  // Set matrices
181  void setProblemMatrix(RCP<Matrix>& A);
182  void setProblemMatrix(RCP< Tpetra::CrsMatrix<SC,LO,GO,NO> >& TpetraA);
183  void setPreconditioningMatrix(RCP<Matrix>& P);
184  void setPreconditioningMatrix(RCP< Tpetra::CrsMatrix<SC,LO,GO,NO> >& TpetraP);
185  void setstiff(RCP<Matrix>& K);
186  void setstiff(RCP< Tpetra::CrsMatrix<SC,LO,GO,NO> >& TpetraK);
187  void setmass(RCP<Matrix>& M);
188  void setmass(RCP< Tpetra::CrsMatrix<SC,LO,GO,NO> >& TpetraM);
189  void setcoords(RCP<MultiVector>& Coords);
190  void setNullSpace(RCP<MultiVector> NullSpace);
191  void setLevelShifts(std::vector<Scalar> levelshifts);
192 
193  // initialize: set parameters and factories, construct
194  // prolongation and restriction matrices
195  void initialize();
196  // setupFastRAP: setup hierarchy with
197  // prolongators of the stiffness matrix
198  // constant complex shifts
199  void setupFastRAP();
200  // setupSlowRAP: setup hierarchy with
201  // prolongators of the stiffness matrix
202  // variable complex shifts
203  void setupSlowRAP();
204  // setupNormalRAP: setup hierarchy with
205  // prolongators of the preconditioning matrix
206  void setupNormalRAP();
207  // setupSolver: initialize Belos solver
208  void setupSolver();
209  // resetLinearProblem: for multiple frequencies;
210  // reset the Belos operator if the frequency changes
211  void resetLinearProblem();
212 
213 
214  // Solve phase
215  int solve(const RCP<TMV> B, RCP<TMV>& X);
216  void multigrid_apply(const RCP<MultiVector> B,
217  RCP<MultiVector>& X);
218  void multigrid_apply(const RCP<Tpetra::MultiVector<SC,LO,GO,NO> > B,
219  RCP<Tpetra::MultiVector<SC,LO,GO,NO> >& X);
220  int GetIterations();
221  typename Teuchos::ScalarTraits<Scalar>::magnitudeType GetResidual();
222 
223  RCP<FactoryManager> Manager_;
224 
225  private:
226 
227  // Problem options
228  // numPDEs_ -> number of DOFs at each node
229  int numPDEs_;
230 
231  // Multigrid options
232  // numLevels_ -> number of Multigrid levels
233  // coarseGridSize_ -> size of coarsest grid (if current level has less DOFs, stop coarsening)
236 
237  // Shifted Laplacian/Helmholtz parameters
238  double omega_;
239  std::vector<SC> levelshifts_;
240 
241  // Krylov solver inputs
242  // iters -> max number of iterations
243  // tol -> residual tolerance
245  double tol_;
249 
250  // Smoother parameters
261  Tpetra::CombineMode schwarz_combinemode_;
263 
264  // flags for setup
267 
268  // Xpetra matrices
269  // K_ -> stiffness matrix
270  // M_ -> mass matrix
271  // A_ -> Problem matrix
272  // P_ -> Preconditioning matrix
273  RCP<Matrix> K_, M_, A_, P_;
274  RCP<MultiVector> Coords_, NullSpace_;
275 
276  // Multigrid Hierarchy
277  RCP<Hierarchy> Hierarchy_;
278 
279  // Factories and prototypes
280  RCP<TentativePFactory> TentPfact_;
281  RCP<PFactory> Pfact_;
282  RCP<PgPFactory> PgPfact_;
283  RCP<TransPFactory> TransPfact_;
284  RCP<GenericRFactory> Rfact_;
285  RCP<RAPFactory> Acfact_;
286  RCP<RAPShiftFactory> Acshift_;
287  RCP<AmalgamationFactory> Amalgfact_;
288  RCP<CoalesceDropFactory> Dropfact_;
289  RCP<CoupledAggregationFactory> Aggfact_;
290  RCP<UncoupledAggregationFactory> UCaggfact_;
291  RCP<CoarseMapFactory> CoarseMapfact_;
292  RCP<SmootherPrototype> smooProto_, coarsestSmooProto_;
293  RCP<SmootherFactory> smooFact_, coarsestSmooFact_;
294  Teuchos::ParameterList coarsestSmooList_;
296  Teuchos::ParameterList precList_;
297 
298  // Operator and Preconditioner
299  RCP< MueLu::ShiftedLaplacianOperator<SC,LO,GO,NO> > MueLuOp_;
300  RCP< Tpetra::CrsMatrix<SC,LO,GO,NO> > TpetraA_;
301 
302 #ifdef HAVE_MUELU_TPETRA_INST_INT_INT
303  // Belos Linear Problem and Solver
304  RCP<LinearProblem> LinearProblem_;
305  RCP<SolverManager> SolverManager_;
306  RCP<SolverFactory> SolverFactory_;
307  RCP<Teuchos::ParameterList> BelosList_;
308 #endif
309 
310  };
311 
312 }
313 
314 #define MUELU_SHIFTEDLAPLACIAN_SHORT
315 
316 #endif //if defined(HAVE_MUELU_IFPACK2) and defined(HAVE_MUELU_TPETRA)
317 
318 #endif // MUELU_SHIFTEDLAPLACIAN_DECL_HPP
MueLu_ConfigDefs.hpp
MueLu::ShiftedLaplacian::TransPfact_
RCP< TransPFactory > TransPfact_
Definition: MueLu_ShiftedLaplacian_decl.hpp:283
MueLu_RAPFactory_fwd.hpp
MueLu::ShiftedLaplacian::ilu_relax_val_
double ilu_relax_val_
Definition: MueLu_ShiftedLaplacian_decl.hpp:257
MueLu::ShiftedLaplacian::tol_
double tol_
Definition: MueLu_ShiftedLaplacian_decl.hpp:245
MueLu::ShiftedLaplacian::Manager_
RCP< FactoryManager > Manager_
Definition: MueLu_ShiftedLaplacian_decl.hpp:223
MueLu_Ifpack2Smoother_fwd.hpp
MueLu::ShiftedLaplacian::ilu_leveloffill_
double ilu_leveloffill_
Definition: MueLu_ShiftedLaplacian_decl.hpp:256
MueLu_SmootherFactory_fwd.hpp
MueLu::DefaultScalar
double DefaultScalar
Definition: MueLu_Details_DefaultTypes.hpp:55
MueLu::ShiftedLaplacian::ilu_rel_thresh_
double ilu_rel_thresh_
Definition: MueLu_ShiftedLaplacian_decl.hpp:256
MueLu::ShiftedLaplacian::Aggregation_
std::string Aggregation_
Definition: MueLu_ShiftedLaplacian_decl.hpp:234
MueLu::ShiftedLaplacian::precList_
Teuchos::ParameterList precList_
Definition: MueLu_ShiftedLaplacian_decl.hpp:296
MueLu::ShiftedLaplacian::initialize
void initialize()
Definition: MueLu_ShiftedLaplacian_def.hpp:224
MueLu_DirectSolver_fwd.hpp
MueLu::ShiftedLaplacian::nproblems_
int nproblems_
Definition: MueLu_ShiftedLaplacian_decl.hpp:247
string
DASHPOS string(SUBSTRING ${CLASS} 0 ${DASHPOS} CLASS_NAME) set(CONDITION_NAME "") set(CONDITION_NAME_END "") string(SUBSTRING $
Definition: src/CMakeLists.txt:134
MueLu::ShiftedLaplacian
Shifted Laplacian Helmholtz solver.
Definition: MueLu_ShiftedLaplacian_decl.hpp:108
MueLu::ShiftedLaplacian::GetIterations
int GetIterations()
Definition: MueLu_ShiftedLaplacian_def.hpp:538
MueLu::ShiftedLaplacian::NullSpace_
RCP< MultiVector > NullSpace_
Definition: MueLu_ShiftedLaplacian_decl.hpp:274
MueLu::ShiftedLaplacian::Amalgfact_
RCP< AmalgamationFactory > Amalgfact_
Definition: MueLu_ShiftedLaplacian_decl.hpp:287
MueLu::ShiftedLaplacian::Dropfact_
RCP< CoalesceDropFactory > Dropfact_
Definition: MueLu_ShiftedLaplacian_decl.hpp:288
MueLu::ShiftedLaplacian::option_
int option_
Definition: MueLu_ShiftedLaplacian_decl.hpp:247
MueLu::ShiftedLaplacian::nsweeps_
int nsweeps_
Definition: MueLu_ShiftedLaplacian_decl.hpp:246
MueLu::ShiftedLaplacian::setParameters
void setParameters(Teuchos::RCP< Teuchos::ParameterList > paramList)
Definition: MueLu_ShiftedLaplacian_def.hpp:84
MueLu::ShiftedLaplacian::resetLinearProblem
void resetLinearProblem()
Definition: MueLu_ShiftedLaplacian_def.hpp:490
MueLu::ShiftedLaplacian::setPreconditioningMatrix
void setPreconditioningMatrix(RCP< Matrix > &P)
Definition: MueLu_ShiftedLaplacian_def.hpp:151
MueLu::ShiftedLaplacian::ilu_milutype_
std::string ilu_milutype_
Definition: MueLu_ShiftedLaplacian_decl.hpp:258
MueLu::ShiftedLaplacian::setupSolver
void setupSolver()
Definition: MueLu_ShiftedLaplacian_def.hpp:464
MueLu::ShiftedLaplacian::omega_
double omega_
Definition: MueLu_ShiftedLaplacian_decl.hpp:238
MueLu::ShiftedLaplacian::A_
RCP< Matrix > A_
Definition: MueLu_ShiftedLaplacian_decl.hpp:273
MueLu::ShiftedLaplacian::Smoother_
std::string Smoother_
Definition: MueLu_ShiftedLaplacian_decl.hpp:234
Scalar
MueLu::DefaultScalar Scalar
Definition: MueLu_UseDefaultTypes.hpp:49
GlobalOrdinal
MueLu::DefaultGlobalOrdinal GlobalOrdinal
Definition: MueLu_UseDefaultTypes.hpp:51
MueLu::ShiftedLaplacian::krylov_iterations_
int krylov_iterations_
Definition: MueLu_ShiftedLaplacian_decl.hpp:254
MueLu::ShiftedLaplacian::ilu_colperm_
std::string ilu_colperm_
Definition: MueLu_ShiftedLaplacian_decl.hpp:258
MueLu::ShiftedLaplacian::ilu_abs_thresh_
double ilu_abs_thresh_
Definition: MueLu_ShiftedLaplacian_decl.hpp:256
MueLu
Namespace for MueLu classes and methods.
Definition: MueLu_BrickAggregationFactory_decl.hpp:76
MueLu::ShiftedLaplacian::schwarz_combinemode_
Tpetra::CombineMode schwarz_combinemode_
Definition: MueLu_ShiftedLaplacian_decl.hpp:261
MueLu::DefaultLocalOrdinal
int DefaultLocalOrdinal
Definition: MueLu_Details_DefaultTypes.hpp:56
MueLu::ShiftedLaplacian::setupFastRAP
void setupFastRAP()
Definition: MueLu_ShiftedLaplacian_def.hpp:414
MueLu::ShiftedLaplacian::coarsestSmooFact_
RCP< SmootherFactory > coarsestSmooFact_
Definition: MueLu_ShiftedLaplacian_decl.hpp:293
MueLu_TentativePFactory_fwd.hpp
MueLu::ShiftedLaplacian::TpetraA_
RCP< Tpetra::CrsMatrix< SC, LO, GO, NO > > TpetraA_
Definition: MueLu_ShiftedLaplacian_decl.hpp:300
MueLu::ShiftedLaplacian::ilu_fill_tol_
double ilu_fill_tol_
Definition: MueLu_ShiftedLaplacian_decl.hpp:257
MueLu::ShiftedLaplacian::numLevels_
int numLevels_
Definition: MueLu_ShiftedLaplacian_decl.hpp:235
MueLu::ShiftedLaplacian::ilu_drop_tol_
double ilu_drop_tol_
Definition: MueLu_ShiftedLaplacian_decl.hpp:257
MueLu::ShiftedLaplacian::setLevelShifts
void setLevelShifts(std::vector< Scalar > levelshifts)
Definition: MueLu_ShiftedLaplacian_def.hpp:215
MueLu::ShiftedLaplacian::ilu_rowperm_
std::string ilu_rowperm_
Definition: MueLu_ShiftedLaplacian_decl.hpp:258
MueLu::ShiftedLaplacian::smooProto_
RCP< SmootherPrototype > smooProto_
Definition: MueLu_ShiftedLaplacian_decl.hpp:292
MueLu::ShiftedLaplacian::solverType_
int solverType_
Definition: MueLu_ShiftedLaplacian_decl.hpp:247
MueLu::ShiftedLaplacian::PgPfact_
RCP< PgPFactory > PgPfact_
Definition: MueLu_ShiftedLaplacian_decl.hpp:282
MueLu::ShiftedLaplacian::Acfact_
RCP< RAPFactory > Acfact_
Definition: MueLu_ShiftedLaplacian_decl.hpp:285
Node
MueLu::DefaultNode Node
Definition: MueLu_UseDefaultTypes.hpp:52
MueLu_PFactory_fwd.hpp
MueLu::BaseClass
Base class for MueLu classes.
Definition: MueLu_BaseClass.hpp:63
MueLu_CoupledRBMFactory_fwd.hpp
MueLu_AmalgamationFactory_fwd.hpp
MueLu::ShiftedLaplacian::multigrid_apply
void multigrid_apply(const RCP< MultiVector > B, RCP< MultiVector > &X)
Definition: MueLu_ShiftedLaplacian_def.hpp:516
MueLu::ShiftedLaplacian::Coords_
RCP< MultiVector > Coords_
Definition: MueLu_ShiftedLaplacian_decl.hpp:274
MueLu_GenericRFactory_fwd.hpp
MueLu::ShiftedLaplacian::setNullSpace
void setNullSpace(RCP< MultiVector > NullSpace)
Definition: MueLu_ShiftedLaplacian_def.hpp:208
MueLu_CoupledAggregationFactory_fwd.hpp
MueLu::ShiftedLaplacian::coarseGridSize_
int coarseGridSize_
Definition: MueLu_ShiftedLaplacian_decl.hpp:235
MueLu::ShiftedLaplacian::Pfact_
RCP< PFactory > Pfact_
Definition: MueLu_ShiftedLaplacian_decl.hpp:281
MueLu::ShiftedLaplacian::M_
RCP< Matrix > M_
Definition: MueLu_ShiftedLaplacian_decl.hpp:273
MueLu::ShiftedLaplacian::cycles_
int cycles_
Definition: MueLu_ShiftedLaplacian_decl.hpp:247
MueLu::ShiftedLaplacian::TMV
Tpetra::MultiVector< SC, LO, GO, NO > TMV
Definition: MueLu_ShiftedLaplacian_decl.hpp:113
MueLu_UncoupledAggregationFactory_fwd.hpp
MueLu::ShiftedLaplacian::TentPfact_
RCP< TentativePFactory > TentPfact_
Definition: MueLu_ShiftedLaplacian_decl.hpp:280
MueLu::ShiftedLaplacian::coarsestSmooList_
Teuchos::ParameterList coarsestSmooList_
Definition: MueLu_ShiftedLaplacian_decl.hpp:294
MueLu::ShiftedLaplacian::CoarseMapfact_
RCP< CoarseMapFactory > CoarseMapfact_
Definition: MueLu_ShiftedLaplacian_decl.hpp:291
MueLu_Hierarchy_fwd.hpp
MueLu::ShiftedLaplacian::schwarz_usereorder_
bool schwarz_usereorder_
Definition: MueLu_ShiftedLaplacian_decl.hpp:260
MueLu.hpp
MueLu::ShiftedLaplacian::isSymmetric_
bool isSymmetric_
Definition: MueLu_ShiftedLaplacian_decl.hpp:266
MueLu_TransPFactory_fwd.hpp
MueLu::ShiftedLaplacian::setcoords
void setcoords(RCP< MultiVector > &Coords)
Definition: MueLu_ShiftedLaplacian_def.hpp:201
MueLu::ShiftedLaplacian::ilu_diagpivotthresh_
double ilu_diagpivotthresh_
Definition: MueLu_ShiftedLaplacian_decl.hpp:256
MueLu_SaPFactory_fwd.hpp
MueLu::ShiftedLaplacian::OP
Tpetra::Operator< SC, LO, GO, NO > OP
Definition: MueLu_ShiftedLaplacian_decl.hpp:114
MueLu::ShiftedLaplacian::setupNormalRAP
void setupNormalRAP()
Definition: MueLu_ShiftedLaplacian_def.hpp:446
MueLu::ShiftedLaplacian::blksize_
int blksize_
Definition: MueLu_ShiftedLaplacian_decl.hpp:244
MueLu::ShiftedLaplacian::Rfact_
RCP< GenericRFactory > Rfact_
Definition: MueLu_ShiftedLaplacian_decl.hpp:284
MueLu_Utilities_fwd.hpp
MueLu::ShiftedLaplacian::Acshift_
RCP< RAPShiftFactory > Acshift_
Definition: MueLu_ShiftedLaplacian_decl.hpp:286
MueLu::ShiftedLaplacian::schwarz_ordermethod_
std::string schwarz_ordermethod_
Definition: MueLu_ShiftedLaplacian_decl.hpp:262
MueLu_CoalesceDropFactory_fwd.hpp
MueLu_ShiftedLaplacian_fwd.hpp
MueLu::ShiftedLaplacian::ncycles_
int ncycles_
Definition: MueLu_ShiftedLaplacian_decl.hpp:246
MueLu::ShiftedLaplacian::coarsestSmooProto_
RCP< SmootherPrototype > coarsestSmooProto_
Definition: MueLu_ShiftedLaplacian_decl.hpp:292
MueLu::ShiftedLaplacian::setProblemMatrix
void setProblemMatrix(RCP< Matrix > &A)
Definition: MueLu_ShiftedLaplacian_def.hpp:125
MueLu::ShiftedLaplacian::K_
RCP< Matrix > K_
Definition: MueLu_ShiftedLaplacian_decl.hpp:273
MueLu::ShiftedLaplacian::subiters_
int subiters_
Definition: MueLu_ShiftedLaplacian_decl.hpp:247
MueLu::ShiftedLaplacian::krylov_preconditioner_
int krylov_preconditioner_
Definition: MueLu_ShiftedLaplacian_decl.hpp:255
MueLu::ShiftedLaplacian::TVEC
Tpetra::Vector< SC, LO, GO, NO > TVEC
Definition: MueLu_ShiftedLaplacian_decl.hpp:112
MueLu::DefaultNode
KokkosClassic::DefaultNode::DefaultNodeType DefaultNode
Definition: MueLu_Details_DefaultTypes.hpp:66
MueLu::ShiftedLaplacian::MueLuOp_
RCP< MueLu::ShiftedLaplacianOperator< SC, LO, GO, NO > > MueLuOp_
Definition: MueLu_ShiftedLaplacian_decl.hpp:299
MueLu::ShiftedLaplacian::iters_
int iters_
Definition: MueLu_ShiftedLaplacian_decl.hpp:244
MueLu::ShiftedLaplacian::smooFact_
RCP< SmootherFactory > smooFact_
Definition: MueLu_ShiftedLaplacian_decl.hpp:293
MueLu_PgPFactory_fwd.hpp
MueLu::ShiftedLaplacian::ShiftedLaplacian
ShiftedLaplacian()
Constructors.
Definition: MueLu_ShiftedLaplacian_decl.hpp:129
MueLu::ShiftedLaplacian::restart_size_
int restart_size_
Definition: MueLu_ShiftedLaplacian_decl.hpp:248
MueLu::ShiftedLaplacian::UCaggfact_
RCP< UncoupledAggregationFactory > UCaggfact_
Definition: MueLu_ShiftedLaplacian_decl.hpp:290
MueLu::ShiftedLaplacian::GridTransfersExist_
bool GridTransfersExist_
Definition: MueLu_ShiftedLaplacian_decl.hpp:265
MueLu::ShiftedLaplacian::setupSlowRAP
void setupSlowRAP()
Definition: MueLu_ShiftedLaplacian_def.hpp:427
MueLu_UseShortNames.hpp
MueLu_SmootherPrototype_fwd.hpp
MueLu::ShiftedLaplacian::Hierarchy_
RCP< Hierarchy > Hierarchy_
Definition: MueLu_ShiftedLaplacian_decl.hpp:277
MueLu::ShiftedLaplacian::levelshifts_
std::vector< SC > levelshifts_
Definition: MueLu_ShiftedLaplacian_decl.hpp:239
MueLu::ShiftedLaplacian::ilu_normtype_
std::string ilu_normtype_
Definition: MueLu_ShiftedLaplacian_decl.hpp:258
MueLu::ShiftedLaplacian::~ShiftedLaplacian
virtual ~ShiftedLaplacian()
Definition: MueLu_ShiftedLaplacian_def.hpp:80
MueLu::ShiftedLaplacian::Aggfact_
RCP< CoupledAggregationFactory > Aggfact_
Definition: MueLu_ShiftedLaplacian_decl.hpp:289
MueLu_CoarseMapFactory_fwd.hpp
MueLu::ShiftedLaplacian::krylov_type_
int krylov_type_
Definition: MueLu_ShiftedLaplacian_decl.hpp:253
MueLu::ShiftedLaplacian::setstiff
void setstiff(RCP< Matrix > &K)
Definition: MueLu_ShiftedLaplacian_def.hpp:169
MueLu::ShiftedLaplacian::P_
RCP< Matrix > P_
Definition: MueLu_ShiftedLaplacian_decl.hpp:273
MueLu::ShiftedLaplacian::GetResidual
Teuchos::ScalarTraits< Scalar >::magnitudeType GetResidual()
Definition: MueLu_ShiftedLaplacian_def.hpp:552
MueLu::ShiftedLaplacian::smoother_sweeps_
int smoother_sweeps_
Definition: MueLu_ShiftedLaplacian_decl.hpp:251
MueLu::ShiftedLaplacian::smoother_damping_
Scalar smoother_damping_
Definition: MueLu_ShiftedLaplacian_decl.hpp:252
MueLu::ShiftedLaplacian::precType_
std::string precType_
Definition: MueLu_ShiftedLaplacian_decl.hpp:295
MueLu::ShiftedLaplacian::ilu_drop_rule_
std::string ilu_drop_rule_
Definition: MueLu_ShiftedLaplacian_decl.hpp:258
MueLu::ShiftedLaplacian::schwarz_overlap_
int schwarz_overlap_
Definition: MueLu_ShiftedLaplacian_decl.hpp:259
MueLu::ShiftedLaplacian::recycle_size_
int recycle_size_
Definition: MueLu_ShiftedLaplacian_decl.hpp:248
MueLu::DefaultGlobalOrdinal
int DefaultGlobalOrdinal
Definition: MueLu_Details_DefaultTypes.hpp:63
MueLu_BaseClass.hpp
MueLu::ShiftedLaplacian::setmass
void setmass(RCP< Matrix > &M)
Definition: MueLu_ShiftedLaplacian_def.hpp:185
MueLu::ShiftedLaplacian::numPDEs_
int numPDEs_
Definition: MueLu_ShiftedLaplacian_decl.hpp:229
MueLu_RAPShiftFactory_fwd.hpp
MueLu::ShiftedLaplacian::solve
int solve(const RCP< TMV > B, RCP< TMV > &X)
Definition: MueLu_ShiftedLaplacian_def.hpp:501
LocalOrdinal
MueLu::DefaultLocalOrdinal LocalOrdinal
Definition: MueLu_UseDefaultTypes.hpp:50
MueLu::ShiftedLaplacian::Nullspace_
std::string Nullspace_
Definition: MueLu_ShiftedLaplacian_decl.hpp:234