MueLu
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
Thyra_MueLuRefMaxwellPreconditionerFactory_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
// Jonathan Hu (jhu@sandia.gov)
40
// Andrey Prokopenko (aprokop@sandia.gov)
41
// Ray Tuminaro (rstumin@sandia.gov)
42
// Tobias Wiesner (tawiesn@sandia.gov)
43
//
44
// ***********************************************************************
45
//
46
// @HEADER
47
#ifndef THYRA_MUELU_REFMAXWELL_PRECONDITIONER_FACTORY_DECL_HPP
48
#define THYRA_MUELU_REFMAXWELL_PRECONDITIONER_FACTORY_DECL_HPP
49
50
#include <
MueLu_ConfigDefs.hpp
>
51
52
#if defined(HAVE_MUELU_STRATIMIKOS) && defined(HAVE_MUELU_THYRA)
53
54
// Stratimikos needs Thyra, so we don't need special guards for Thyra here
55
#include "Thyra_DefaultPreconditioner.hpp"
56
#include "Thyra_BlockedLinearOpBase.hpp"
57
#include "Thyra_DiagonalLinearOpBase.hpp"
58
#include "
Thyra_XpetraLinearOp.hpp
"
59
#include <
Thyra_MueLuPreconditionerFactory.hpp
>
60
#include "Thyra_TpetraLinearOp.hpp"
61
#include "Thyra_TpetraThyraWrappers.hpp"
62
#ifdef HAVE_MUELU_EPETRA
63
#include "Thyra_EpetraLinearOp.hpp"
64
#include "Thyra_EpetraThyraWrappers.hpp"
65
#endif
66
67
#include "Teuchos_Ptr.hpp"
68
#include "Teuchos_TestForException.hpp"
69
#include "Teuchos_Assert.hpp"
70
#include "Teuchos_Time.hpp"
71
72
#include <Xpetra_CrsMatrixWrap.hpp>
73
#include <Xpetra_CrsMatrix.hpp>
74
#include <Xpetra_Matrix.hpp>
75
#include <Xpetra_ThyraUtils.hpp>
76
77
#include <
MueLu_XpetraOperator_decl.hpp
>
// todo fix me
78
#include <MueLu_RefMaxwell.hpp>
79
#include <MueLu_TpetraOperator.hpp>
80
#include <Xpetra_TpetraOperator.hpp>
81
#include <Xpetra_TpetraHalfPrecisionOperator.hpp>
82
#ifdef HAVE_MUELU_EPETRA
83
#include <
MueLu_EpetraOperator.hpp
>
84
#include <Xpetra_EpetraOperator.hpp>
85
#endif
86
87
#include "Thyra_PreconditionerFactoryBase.hpp"
88
89
#include <Tpetra_KokkosCompat_DefaultNode.hpp>
90
91
#include <list>
92
93
namespace
Thyra
{
94
103
template
<
class
Scalar,
class
LocalOrdinal,
class
GlobalOrdinal,
class
Node = Tpetra::KokkosClassic::DefaultNode::DefaultNodeType>
104
class
MueLuRefMaxwellPreconditionerFactory :
public
PreconditionerFactoryBase<Scalar> {
105
public
:
106
109
111
MueLuRefMaxwellPreconditionerFactory();
113
116
118
bool
isCompatible(
const
LinearOpSourceBase<Scalar>& fwdOp)
const
;
120
Teuchos::RCP<PreconditionerBase<Scalar> > createPrec()
const
;
122
void
initializePrec(
const
Teuchos::RCP<
const
LinearOpSourceBase<Scalar> >& fwdOp,
123
PreconditionerBase<Scalar>* prec,
124
const
ESupportSolveUse supportSolveUse
125
)
const
;
127
void
uninitializePrec(PreconditionerBase<Scalar>* prec,
128
Teuchos::RCP<
const
LinearOpSourceBase<Scalar> >* fwdOp,
129
ESupportSolveUse* supportSolveUse
130
)
const
;
131
133
136
138
void
setParameterList(
const
Teuchos::RCP<Teuchos::ParameterList>& paramList);
140
Teuchos::RCP<Teuchos::ParameterList> unsetParameterList();
142
Teuchos::RCP<Teuchos::ParameterList> getNonconstParameterList();
144
Teuchos::RCP<const Teuchos::ParameterList> getParameterList()
const
;
146
Teuchos::RCP<const Teuchos::ParameterList>
getValidParameters
()
const
;
148
151
153
std::string description()
const
;
154
155
// ToDo: Add an override of describe(...) to give more detail!
156
158
159
private
:
160
161
Teuchos::RCP<Teuchos::ParameterList> paramList_;
162
163
};
164
165
}
// namespace Thyra
166
167
#endif
// #ifdef HAVE_MUELU_STRATIMIKOS
168
169
#endif
// THYRA_MUELU_REFMAXWELL_PRECONDITIONER_FACTORY_DECL_HPP
MueLu_ConfigDefs.hpp
MueLu_EpetraOperator.hpp
MueLu_XpetraOperator_decl.hpp
Thyra_MueLuPreconditionerFactory.hpp
Thyra_XpetraLinearOp.hpp
Ifpack2::getValidParameters
void getValidParameters(Teuchos::ParameterList ¶ms)
Thyra
Definition
Thyra_MueLuTpetraQ2Q1PreconditionerFactory_decl.hpp:60
adapters
stratimikos
Thyra_MueLuRefMaxwellPreconditionerFactory_decl.hpp
Generated by
1.17.0