EpetraExt
Development
Toggle main menu visibility
Loading...
Searching...
No Matches
src
transform
EpetraExt_StaticCondensation_LinearProblem.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_STATICCONDENSATION_H
43
#define EpetraExt_LINEARPROBLEM_STATICCONDENSATION_H
44
45
#include <
EpetraExt_Transform.h
>
46
47
class
Epetra_LinearProblem
;
48
class
Epetra_Map
;
49
class
Epetra_MultiVector
;
50
class
Epetra_CrsGraph
;
51
class
Epetra_CrsMatrix
;
52
class
Epetra_Export
;
53
54
namespace
EpetraExt
{
55
56
class
LinearProblem_StaticCondensation
:
public
SameTypeTransform
<Epetra_LinearProblem>
57
{
58
const
int
degree_;
59
const
bool
verbose_;
60
61
const
Epetra_Map
* OldRowMap_;
62
Epetra_LinearProblem
* OldProblem_;
63
Epetra_MultiVector
* OldRHS_;
64
Epetra_MultiVector
* OldLHS_;
65
const
Epetra_CrsGraph
* OldGraph_;
66
Epetra_CrsMatrix
* OldMatrix_;
67
68
Epetra_Export
* Exporter_;
69
70
Epetra_Map
* NewRowMap_;
71
Epetra_Map
* NewColMap_;
72
Epetra_LinearProblem
* NewProblem_;
73
Epetra_MultiVector
* NewRHS_;
74
Epetra_MultiVector
* NewLHS_;
75
Epetra_CrsGraph
* NewGraph_;
76
Epetra_CrsMatrix
* NewMatrix_;
77
78
Epetra_Map
* UMap_;
79
Epetra_Map
* RMap_;
80
Epetra_Map
* LMap_;
81
82
Epetra_Export
* UExporter_;
83
Epetra_Export
* RExporter_;
84
Epetra_Export
* LExporter_;
85
86
Epetra_MultiVector
* ULHS_;
87
Epetra_MultiVector
* RLHS_;
88
Epetra_MultiVector
* LLHS_;
89
90
Epetra_MultiVector
* URHS_;
91
Epetra_MultiVector
* RRHS_;
92
Epetra_MultiVector
* LRHS_;
93
94
Epetra_CrsGraph
* UUGraph_;
95
Epetra_CrsGraph
* URGraph_;
96
Epetra_CrsGraph
* ULGraph_;
97
Epetra_CrsGraph
* RRGraph_;
98
Epetra_CrsGraph
* RLGraph_;
99
Epetra_CrsGraph
* LLGraph_;
100
101
Epetra_CrsMatrix
* UUMatrix_;
102
Epetra_CrsMatrix
* URMatrix_;
103
Epetra_CrsMatrix
* ULMatrix_;
104
Epetra_CrsMatrix
* RRMatrix_;
105
Epetra_CrsMatrix
* RLMatrix_;
106
Epetra_CrsMatrix
* LLMatrix_;
107
108
public
:
109
110
~LinearProblem_StaticCondensation
();
111
112
LinearProblem_StaticCondensation
(
int
degree = 1,
bool
verbose =
false
)
113
: degree_(degree),
114
verbose_(verbose),
115
OldRowMap_(0),
116
OldProblem_(0),
117
OldRHS_(0),
118
OldLHS_(0),
119
OldGraph_(0),
120
OldMatrix_(0),
121
Exporter_(0),
122
NewRowMap_(0),
123
NewColMap_(0),
124
NewProblem_(0),
125
NewRHS_(0),
126
NewLHS_(0),
127
NewGraph_(0),
128
NewMatrix_(0),
129
UMap_(0),
130
RMap_(0),
131
LMap_(0),
132
UExporter_(0),
133
RExporter_(0),
134
LExporter_(0),
135
ULHS_(0),
136
RLHS_(0),
137
LLHS_(0),
138
URHS_(0),
139
RRHS_(0),
140
LRHS_(0),
141
UUGraph_(0),
142
URGraph_(0),
143
ULGraph_(0),
144
RRGraph_(0),
145
RLGraph_(0),
146
LLGraph_(0),
147
UUMatrix_(0),
148
URMatrix_(0),
149
ULMatrix_(0),
150
RRMatrix_(0),
151
RLMatrix_(0),
152
LLMatrix_(0)
153
{}
154
155
NewTypeRef
operator()
(
OriginalTypeRef
orig );
156
157
bool
fwd
();
158
bool
rvs
();
159
};
160
161
}
//namespace EpetraExt
162
163
#endif
//EpetraExt_LINEARPROBLEM_STATICCONDENSATION_H
EpetraExt_Transform.h
EpetraExt::LinearProblem_StaticCondensation::rvs
bool rvs()
Reverse transfer of data from new object created in the operator() method call to the orig object inp...
Definition
EpetraExt_StaticCondensation_LinearProblem.cpp:407
EpetraExt::LinearProblem_StaticCondensation::LinearProblem_StaticCondensation
LinearProblem_StaticCondensation(int degree=1, bool verbose=false)
Definition
EpetraExt_StaticCondensation_LinearProblem.h:112
EpetraExt::LinearProblem_StaticCondensation::fwd
bool fwd()
Forward transfer of data from orig object input in the operator() method call to the new object creat...
Definition
EpetraExt_StaticCondensation_LinearProblem.cpp:362
EpetraExt::LinearProblem_StaticCondensation::operator()
NewTypeRef operator()(OriginalTypeRef orig)
Definition
EpetraExt_StaticCondensation_LinearProblem.cpp:105
EpetraExt::LinearProblem_StaticCondensation::~LinearProblem_StaticCondensation
~LinearProblem_StaticCondensation()
Definition
EpetraExt_StaticCondensation_LinearProblem.cpp:61
EpetraExt::SameTypeTransform
Definition
EpetraExt_Transform.h:271
EpetraExt::Transform< Epetra_LinearProblem, Epetra_LinearProblem >::OriginalTypeRef
Epetra_LinearProblem & OriginalTypeRef
Definition
EpetraExt_Transform.h:74
EpetraExt::Transform< Epetra_LinearProblem, Epetra_LinearProblem >::NewTypeRef
Epetra_LinearProblem & NewTypeRef
Definition
EpetraExt_Transform.h:79
Epetra_CrsGraph
Epetra_CrsMatrix
Epetra_Export
Epetra_LinearProblem
Epetra_Map
Epetra_MultiVector
EpetraExt
EpetraExt::BlockCrsMatrix: A class for constructing a distributed block matrix.
Definition
EpetraExt_BlockCrsMatrix.cpp:46
Generated by
1.17.0