/usr/include/trilinos/MLAPI_Aggregation.h is in libtrilinos-ml-dev 12.4.2-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | #ifndef MLAPI_AGGREGATION_H
#define MLAPI_AGGREGATION_H
#include "ml_common.h"
/*!
\file MLAPI_Aggregation.h
\brief Functions to create aggregation-based prolongator operators.
\author Marzio Sala, SNL 9214.
\date Last updated on Feb-05.
*/
/* ******************************************************************** */
/* See the file COPYRIGHT for a complete copyright notice, contact */
/* person and disclaimer. */
/* ******************************************************************** */
namespace Teuchos {
class ParameterList;
}
namespace MLAPI {
class Operator;
class MultiVector;
//! Builds the tentative prolongator using aggregation.
void GetPtent(const Operator& A, Teuchos::ParameterList& List,
const MultiVector& ThisNS,
Operator& Ptent, MultiVector& NextNS);
//! Builds the tentative prolongator with default null space.
void GetPtent(const Operator& A, Teuchos::ParameterList& List, Operator& Ptent);
/*!
\brief Builds the tentative prolongator using aggregation.
Build Ptent and NextNS as usual but as Epetra objects.
\param A (in): Matrix to be aggregated on
\param List (in): ParameterList containing ML options
\param thisns (in): nullspace in format ML accepts
\param Ptent(out): Matrix containing tentative prolongator
\param NextNS (out): MultiVector containing next level nullspace.
\param domainoffset (in,optional): give an offset such that the domainmap
of Ptent starts global numbering from domainoffset
instead from zero. This is useful to
create block matrices.
\author Michael Gee (gee@lnm.mw.tum.de)
*/
void GetPtent(const Epetra_RowMatrix& A, Teuchos::ParameterList& List,
double* thisns, Teuchos::RCP<Epetra_CrsMatrix>& Ptent,
Teuchos::RCP<Epetra_MultiVector>& NextNS, const int domainoffset = 0);
/*!
\brief Builds the tentative prolongator using aggregation.
Build Ptent and NextNS as usual but as Epetra objects.
\param A (in): Matrix to be aggregated on
\param List (in): ParameterList containing ML options
\param thisns (in): nullspace in format ML accepts
\param Ptent(out): Matrix containing tentative prolongator
\param domainoffset (in,optional): give an offset such that the domainmap
of Ptent starts global numbering from domainoffset
instead from zero. This is useful to
create block matrices.
\author Michael Gee (gee@lnm.mw.tum.de)
*/
void GetPtent(const Epetra_RowMatrix& A, Teuchos::ParameterList& List,
double* thisns, Teuchos::RCP<Epetra_CrsMatrix>& Ptent,
const int domainoffset = 0);
/*!
\brief Call ML aggregation on A according to parameters supplied in List. Return
aggregates in aggrinfo
On input, map of aggrinfo has to map row map of A. On output, aggrinfo[i]
contains number of aggregate the row belongs to, where aggregates are
numbered starting from 0.
Return value is the processor-local number of aggregates build.
If aggrinfo[i] >= return-value, then i is a processor local row
of a row that ML has detected to be on a Dirichlet BC.
\param A (in): Matrix to be aggregated on
\param List (in): ParameterList containing ML options
\param thisns (in): nullspace
\param aggrinfo(out): vector containing aggregation information
\note Map of aggrinfo has to match rowmap of A on input.
\return returns processor-local number of aggregates
\author Michael Gee (gee@lnm.mw.tum.de)
*/
int GetAggregates(Epetra_RowMatrix& A, Teuchos::ParameterList& List,
double* thisns, Epetra_IntVector& aggrinfo);
/*!
\brief Call ML aggregation on A according to parameters supplied in List. Return
aggregates in aggrinfo
On input, map of aggrinfo has to map row map of A. On output, aggrinfo[i]
contains number of global aggregate the row belongs to, where aggregates are
numbered starting from 0 globally.
Return value is the processor-local number of aggregates build.
If aggrinfo[i] < 0, then i is a processor local row
that ML has detected to be on a Dirichlet BC.
if aggrinfo[i] >= 0, then i is a processor local row and aggrinfo[i] is
a global aggregate id.
\param A (in): Matrix to be aggregated on
\param List (in): ParameterList containing ML options
\param thisns (in): nullspace
\param aggrinfo(out): vector containing aggregation information in global numbering
\note Map of aggrinfo has to match rowmap of A on input.
\return returns processor-local number of aggregates
\author Michael Gee (gee@lnm.mw.tum.de)
*/
int GetGlobalAggregates(Epetra_RowMatrix& A, Teuchos::ParameterList& List,
double* thisns, Epetra_IntVector& aggrinfo);
} // namespace MLAPI
#endif // MLAPI_AGGREGATION_H
|