Xpetra
Version of the Day
Loading...
Searching...
No Matches
Xpetra_TripleMatrixMultiply_decl.hpp
Go to the documentation of this file.
1
// @HEADER
2
// *****************************************************************************
3
// Xpetra: A linear algebra interface package
4
//
5
// Copyright 2012 NTESS and the Xpetra contributors.
6
// SPDX-License-Identifier: BSD-3-Clause
7
// *****************************************************************************
8
// @HEADER
9
10
#ifndef PACKAGES_XPETRA_SUP_UTILS_XPETRA_TRIPLEMATRIXMULTIPLY_DECL_HPP_
11
#define PACKAGES_XPETRA_SUP_UTILS_XPETRA_TRIPLEMATRIXMULTIPLY_DECL_HPP_
12
13
#include "
Xpetra_ConfigDefs.hpp
"
14
15
// #include "Xpetra_BlockedCrsMatrix.hpp"
16
#include "Xpetra_CrsMatrixWrap.hpp"
17
#include "Xpetra_MapExtractor.hpp"
18
#include "Xpetra_Map.hpp"
19
#include "Xpetra_MatrixFactory.hpp"
20
#include "Xpetra_Matrix.hpp"
21
#include "Xpetra_StridedMapFactory.hpp"
22
#include "Xpetra_StridedMap.hpp"
23
#include "Xpetra_IO.hpp"
24
25
#include <TpetraExt_TripleMatrixMultiply.hpp>
26
#include <Xpetra_TpetraCrsMatrix.hpp>
27
#include <Tpetra_BlockCrsMatrix.hpp>
28
#include <Tpetra_BlockCrsMatrix_Helpers.hpp>
29
// #include <Xpetra_TpetraMultiVector.hpp>
30
// #include <Xpetra_TpetraVector.hpp>
31
32
namespace
Xpetra
{
33
34
template
<
class
Scalar,
35
class
LocalOrdinal
/*= int*/
,
36
class
GlobalOrdinal
/*= LocalOrdinal*/
,
37
class
Node
/*= Tpetra::KokkosClassic::DefaultNode::DefaultNodeType*/
>
38
class
TripleMatrixMultiply {
39
#undef XPETRA_TRIPLEMATRIXMULTIPLY_SHORT
40
#include "
Xpetra_UseShortNames.hpp
"
41
42
public
:
57
C.FillComplete() will have been called, unless the last argument
58
to this function is specified to be false.
59
@param call_FillComplete_on_result Optional argument, defaults to true.
60
Power users may specify this argument to be false if they *DON'T*
61
want this function to call C.FillComplete. (It is often useful
62
to allow this function to call C.FillComplete, in cases where
63
one or both of the input matrices are rectangular and it is not
64
trivial to know which maps to use for the domain- and range-maps.)
65
66
*/
67
static
void
MultiplyRAP(
const
Matrix
& R,
bool
transposeR,
68
const
Matrix
& A,
bool
transposeA,
69
const
Matrix
& P,
bool
transposeP,
70
Matrix
& Ac,
71
bool
call_FillComplete_on_result =
true
,
72
bool
doOptimizeStorage =
true
,
73
const
std::string& label = std::string(),
74
const
RCP<ParameterList>
& params = null);
75
76
};
// class TripleMatrixMultiply
77
78
}
// end namespace Xpetra
79
80
#define XPETRA_TRIPLEMATRIXMULTIPLY_SHORT
81
82
#endif
/* PACKAGES_XPETRA_SUP_UTILS_XPETRA_TRIPLEMATRIXMULTIPLY_DECL_HPP_ */
Xpetra_ConfigDefs.hpp
Xpetra_UseShortNames.hpp
Teuchos::RCP
Xpetra::Matrix
Xpetra-specific matrix class.
Definition
Xpetra_Matrix_decl.hpp:60
Xpetra
Xpetra namespace
Definition
Xpetra_BlockedCrsMatrix_decl.hpp:52
src
Utils
Xpetra_TripleMatrixMultiply_decl.hpp
Generated by
1.15.0