Teko Version of the Day
Loading...
Searching...
No Matches
Teko_mlutils.hpp
1// @HEADER
2// *****************************************************************************
3// Teko: A package for block and physics based preconditioning
4//
5// Copyright 2010 NTESS and the Teko contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8// @HEADER
9
10#ifndef __Teko_mlutils_hpp__
11#define __Teko_mlutils_hpp__
12
13#include "ml_operator.h"
14#include "Epetra_Map.h"
15#include "Epetra_CrsMatrix.h"
16
17#include "Teuchos_RCP.hpp"
18
19#include "Teko_Utilities.hpp"
20
21namespace Teko {
22
23class InverseLibrary;
24
25namespace mlutils {
26
28Teuchos::RCP<Epetra_Map> buildRowMap(ML_Operator *mlOp);
29
33Teuchos::RCP<Epetra_CrsMatrix> convertToCrsMatrix(
34 ML_Operator *mlOp, const Teuchos::RCP<Epetra_Map> &rowMap = Teuchos::null);
35
36Teko::LinearOp buildTekoBlockOp(ML_Operator *mlOp, int level);
37
41 Teuchos::RCP<Epetra_Operator> Amat;
42 Teuchos::RCP<Epetra_Operator> smootherOperator;
43};
44
47int smoother(ML_Smoother *mydata, int leng1, double x[], int leng2, double rhs[]);
48
49extern "C" int ML_Gen_Smoother_Teko(ML *ml, int level, int pre_or_post, int ntimes,
50 const Teuchos::RCP<const Teuchos::ParameterList> &tekoPL,
51 const Teuchos::RCP<const Teko::InverseLibrary> &invLib,
52 const std::string &inverse, bool isBlocked);
53
54} // namespace mlutils
55} // namespace Teko
56
57#endif