10#ifndef MUELU_SHIFTEDLAPLACIAN_DECL_HPP
11#define MUELU_SHIFTEDLAPLACIAN_DECL_HPP
14#include <Xpetra_Matrix_fwd.hpp>
15#include <Xpetra_VectorFactory_fwd.hpp>
16#include <Xpetra_MultiVectorFactory_fwd.hpp>
17#include <Xpetra_TpetraMultiVector.hpp>
23#if defined(HAVE_MUELU_IFPACK2)
40#include <MueLu_ShiftedLaplacianOperator.hpp>
49#include <BelosConfigDefs.hpp>
50#include <BelosLinearProblem.hpp>
51#include <BelosSolverFactory.hpp>
52#include <BelosTpetraAdapter.hpp>
54#include "Kokkos_Core.hpp"
72#undef MUELU_SHIFTEDLAPLACIAN_SHORT
75 typedef Tpetra::Vector<SC, LO, GO, NO>
TVEC;
76 typedef Tpetra::MultiVector<SC, LO, GO, NO>
TMV;
77 typedef Tpetra::Operator<SC, LO, GO, NO>
OP;
96 ,
omega_(2.0 * Kokkos::numbers::pi_v<double>)
137 void setParameters(Teuchos::RCP<Teuchos::ParameterList> paramList);
145 void setstiff(RCP<Tpetra::CrsMatrix<SC, LO, GO, NO> >& TpetraK);
147 void setmass(RCP<Tpetra::CrsMatrix<SC, LO, GO, NO> >& TpetraM);
148 void setcoords(RCP<MultiVector>& Coords);
173 Belos::ReturnType
solve(
const RCP<TMV> B, RCP<TMV>& X);
175 RCP<MultiVector>& X);
176 void multigrid_apply(
const RCP<Tpetra::MultiVector<SC, LO, GO, NO> > B,
177 RCP<Tpetra::MultiVector<SC, LO, GO, NO> >& X);
179 typename Teuchos::ScalarTraits<Scalar>::magnitudeType
GetResidual();
255 RCP<MueLu::ShiftedLaplacianOperator<SC, LO, GO, NO> >
MueLuOp_;
267#define MUELU_SHIFTEDLAPLACIAN_SHORT
MueLu::DefaultLocalOrdinal LocalOrdinal
MueLu::DefaultScalar Scalar
MueLu::DefaultGlobalOrdinal GlobalOrdinal
Base class for MueLu classes.
Shifted Laplacian Helmholtz solver.
Tpetra::MultiVector< SC, LO, GO, NO > TMV
void setPreconditioningMatrix(RCP< Matrix > &P)
RCP< TransPFactory > TransPfact_
RCP< MultiVector > NullSpace_
void setmass(RCP< Matrix > &M)
RCP< Tpetra::CrsMatrix< SC, LO, GO, NO > > TpetraA_
double ilu_diagpivotthresh_
std::string ilu_normtype_
int krylov_preconditioner_
Tpetra::Operator< SC, LO, GO, NO > OP
RCP< CoarseMapFactory > CoarseMapfact_
std::string ilu_milutype_
RCP< GenericRFactory > Rfact_
void resetLinearProblem()
RCP< MultiVector > Coords_
RCP< LinearProblem > LinearProblem_
void setNullSpace(RCP< MultiVector > NullSpace)
RCP< RAPFactory > Acfact_
RCP< MueLu::ShiftedLaplacianOperator< SC, LO, GO, NO > > MueLuOp_
RCP< SmootherPrototype > coarsestSmooProto_
std::vector< SC > levelshifts_
RCP< RAPShiftFactory > Acshift_
void setcoords(RCP< MultiVector > &Coords)
Belos::LinearProblem< SC, TMV, OP > LinearProblem
Teuchos::ScalarTraits< Scalar >::magnitudeType GetResidual()
RCP< TentativePFactory > TentPfact_
Belos::SolverManager< SC, TMV, OP > SolverManager
Teuchos::ParameterList precList_
RCP< UncoupledAggregationFactory > UCaggfact_
RCP< SmootherPrototype > smooProto_
RCP< SmootherFactory > smooFact_
void setLevelShifts(std::vector< Scalar > levelshifts)
void setParameters(Teuchos::RCP< Teuchos::ParameterList > paramList)
std::string schwarz_ordermethod_
RCP< FactoryManager > Manager_
virtual ~ShiftedLaplacian()
RCP< SolverManager > SolverManager_
void setstiff(RCP< Matrix > &K)
void setProblemMatrix(RCP< Matrix > &A)
void multigrid_apply(const RCP< MultiVector > B, RCP< MultiVector > &X)
Teuchos::ParameterList coarsestSmooList_
RCP< Hierarchy > Hierarchy_
ShiftedLaplacian()
Constructors.
Belos::SolverFactory< SC, TMV, OP > SolverFactory
RCP< SolverFactory > SolverFactory_
RCP< Teuchos::ParameterList > BelosList_
RCP< AmalgamationFactory > Amalgfact_
Tpetra::Vector< SC, LO, GO, NO > TVEC
std::string ilu_drop_rule_
RCP< CoalesceDropFactory > Dropfact_
RCP< SmootherFactory > coarsestSmooFact_
RCP< PgPFactory > PgPfact_
Tpetra::CombineMode schwarz_combinemode_
Belos::ReturnType solve(const RCP< TMV > B, RCP< TMV > &X)
Namespace for MueLu classes and methods.
Tpetra::KokkosClassic::DefaultNode::DefaultNodeType DefaultNode
Tpetra::Details::DefaultTypes::scalar_type DefaultScalar