10 #define LinearSolver_h 17 #include <Kokkos_DefaultNode.hpp> 18 #include <Tpetra_Vector.hpp> 19 #include <Tpetra_DefaultPlatform.hpp> 20 #include <Tpetra_CrsMatrix.hpp> 21 #include <Teuchos_GlobalMPISession.hpp> 22 #include <Teuchos_oblackholestream.hpp> 24 #include <Ifpack2_Factory.hpp> 31 typedef Tpetra::DefaultPlatform::DefaultPlatformType
Platform;
33 typedef Teuchos::ScalarTraits<Scalar>
STS;
38 #include <MueLu_TrilinosSmoother.hpp> 39 #include <MueLu_TpetraOperator.hpp> 41 #include <MueLu_UseShortNames.hpp> 59 bool recompute_preconditioner,
bool reuse_preconditioner) :
name_(name),
linearSolvers_(linearSolvers),
83 std::string solverName,
85 const Teuchos::RCP<Teuchos::ParameterList> params,
const Teuchos::RCP<Teuchos::ParameterList> paramsPrecond,
89 void setSystemObjects(
90 Teuchos::RCP<LinSys::Matrix> matrix,
91 Teuchos::RCP<LinSys::Vector>
rhs);
93 void setupLinearSolver(
94 Teuchos::RCP<LinSys::Vector> sln,
95 Teuchos::RCP<LinSys::Matrix> matrix,
96 Teuchos::RCP<LinSys::Vector> rhs,
97 Teuchos::RCP<LinSys::MultiVector> coords);
99 void destroyLinearSolver();
103 int residual_norm(
int whichNorm, Teuchos::RCP<LinSys::Vector> sln,
double& norm);
106 Teuchos::RCP<LinSys::Vector> sln,
107 int & iterationCount,
108 double & scaledResidual);
117 const Teuchos::RCP<Teuchos::ParameterList>
params_;
120 Teuchos::RCP<LinSys::Vector>
rhs_;
Teuchos::RCP< LinSys::Vector > rhs_
Definition: LinearSolver.h:120
Definition: LinearSolver.h:48
bool reusePreconditioner_
Definition: LinearSolver.h:69
PetraType
Definition: LinearSolver.h:46
bool & activeMueLu()
Definition: LinearSolver.h:113
Definition: Simulation.h:28
Definition: ABLForcingAlgorithm.C:26
Teuchos::RCP< LinSys::SolverManager > solver_
Definition: LinearSolver.h:122
virtual PetraType getType()
Definition: LinearSolver.h:110
double Scalar
Definition: LinearSolver.h:28
void zero_timer_precond()
Definition: LinearSolver.h:74
Definition: LinearSolver.h:47
double get_timer_precond()
Definition: LinearSolver.h:75
const Teuchos::RCP< Teuchos::ParameterList > params_
Definition: LinearSolver.h:117
int LocalOrdinal
Definition: LinearSolver.h:30
Teuchos::RCP< LinSys::LinearProblem > problem_
Definition: LinearSolver.h:121
TpetraLinearSolverConfig * config_
Definition: LinearSolver.h:116
double timerPrecond_
Definition: LinearSolver.h:70
const Teuchos::RCP< Teuchos::ParameterList > paramsPrecond_
Definition: LinearSolver.h:118
Teuchos::RCP< LinSys::MultiVector > coords_
Definition: LinearSolver.h:125
Tpetra::DefaultPlatform::DefaultPlatformType Platform
Definition: LinearSolver.h:31
LinearSolvers * parent()
Definition: LinearSolver.C:49
Definition: LinearSolverTypes.h:32
long GlobalOrdinal
Definition: LinearSolver.h:29
LinearSolver(std::string name, LinearSolvers *linearSolvers, bool recompute_preconditioner, bool reuse_preconditioner)
Definition: LinearSolver.h:58
static constexpr double rhs[8]
Definition: UnitTestContinuityAdvElem.C:18
bool & recomputePreconditioner()
Definition: LinearSolver.h:72
std::string preconditionerType_
Definition: LinearSolver.h:128
bool activateMueLu_
Definition: LinearSolver.h:127
virtual PetraType getType()=0
bool & reusePreconditioner()
Definition: LinearSolver.h:73
Tpetra::Map< LocalOrdinal, GlobalOrdinal >::node_type Node
Definition: LinearSolver.h:32
virtual ~LinearSolver()
Definition: LinearSolver.h:61
Teuchos::RCP< MueLu::TpetraOperator< SC, LO, GO, NO > > mueluPreconditioner_
Definition: LinearSolver.h:124
Teuchos::ScalarTraits< Scalar > STS
Definition: LinearSolver.h:33
Definition: LinearSolvers.h:28
Simulation * root()
Definition: LinearSolver.C:48
Definition: LinearSolver.h:55
LinearSolvers * linearSolvers_
Definition: LinearSolver.h:66
Definition: LinearSolverConfig.h:23
bool recomputePreconditioner_
Definition: LinearSolver.h:68
TpetraLinearSolverConfig * getConfig()
Definition: LinearSolver.h:111
Teuchos::RCP< LinSys::Preconditioner > preconditioner_
Definition: LinearSolver.h:123
Definition: LinearSolver.h:78
std::string name_
Definition: LinearSolver.h:62
Teuchos::RCP< LinSys::Matrix > matrix_
Definition: LinearSolver.h:119