EpetraExt Development
Loading...
Searching...
No Matches
EpetraExt_LPTrans_From_MatrixTrans.h
Go to the documentation of this file.
1//@HEADER
2// ***********************************************************************
3//
4// EpetraExt: Epetra Extended - Linear Algebra Services Package
5// Copyright (2011) Sandia Corporation
6//
7// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
8// the U.S. Government retains certain rights in this software.
9//
10// Redistribution and use in source and binary forms, with or without
11// modification, are permitted provided that the following conditions are
12// met:
13//
14// 1. Redistributions of source code must retain the above copyright
15// notice, this list of conditions and the following disclaimer.
16//
17// 2. Redistributions in binary form must reproduce the above copyright
18// notice, this list of conditions and the following disclaimer in the
19// documentation and/or other materials provided with the distribution.
20//
21// 3. Neither the name of the Corporation nor the names of the
22// contributors may be used to endorse or promote products derived from
23// this software without specific prior written permission.
24//
25// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
26// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
29// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
32// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
33// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
34// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36//
37// Questions? Contact Michael A. Heroux (maherou@sandia.gov)
38//
39// ***********************************************************************
40//@HEADER
41
42#ifndef EpetraExt_LINEARPROBLEM_MATRIXTRANS_H
43#define EpetraExt_LINEARPROBLEM_MATRIXTRANS_H
44
45#include <EpetraExt_Transform.h>
46
48class Epetra_Map;
50class Epetra_CrsGraph;
52class Epetra_Export;
53class Epetra_Import;
54
55namespace EpetraExt {
56
58class LinearProblem_MatrixTrans : public SameTypeTransform<Epetra_LinearProblem>
59{
61
62 Epetra_Import * Importer_;
63 Epetra_Export * Exporter_;
64
65 Epetra_LinearProblem * OldProblem_;
66 Epetra_CrsMatrix * OldMatrix_;
67 Epetra_MultiVector * OldLHS_;
68 Epetra_MultiVector * OldRHS_;
69 Epetra_Map * OldRowMap_;
70
71 Epetra_LinearProblem * NewProblem_;
72 Epetra_CrsMatrix * NewMatrix_;
73 Epetra_MultiVector * NewLHS_;
74 Epetra_MultiVector * NewRHS_;
75
76 public:
77
80
83 : matrixTrans_(matrix_trans),
84 Importer_(0),
85 Exporter_(0),
86 OldProblem_(0),
87 OldMatrix_(0),
88 OldLHS_(0),
89 OldRHS_(0),
90 OldRowMap_(0),
91 NewProblem_(0),
92 NewMatrix_(0),
93 NewLHS_(0),
94 NewRHS_(0)
95 {}
96
98
101
103 bool fwd();
104
106 bool rvs();
107
108};
109
110} //namespace EpetraExt
111
112#endif //EpetraExt_LINEARPROBLEM_MATRIXTRANS_H
113
Adaptation of an Epetra_CrsMatrix Transform to a Epetra_LinearProblem Transform.
NewTypeRef operator()(OriginalTypeRef orig)
Transform Operator.
LinearProblem_MatrixTrans(SameTypeTransform< Epetra_CrsMatrix > &matrix_trans)
Constructor.
EpetraExt::BlockCrsMatrix: A class for constructing a distributed block matrix.