EpetraExt Package Browser (Single Doxygen Collection)  Development
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 
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 
67 
69 
77 
81 
85 
89 
93 
100 
107 
108  public:
109 
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 
156 
157  bool fwd();
158  bool rvs();
159 };
160 
161 } //namespace EpetraExt
162 
163 #endif //EpetraExt_LINEARPROBLEM_STATICCONDENSATION_H
EpetraExt::Transform< Epetra_LinearProblem, Epetra_LinearProblem >::NewTypeRef
Epetra_LinearProblem & NewTypeRef
Definition: EpetraExt_Transform.h:79
EpetraExt::LinearProblem_StaticCondensation::OldRowMap_
const Epetra_Map * OldRowMap_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:61
EpetraExt::LinearProblem_StaticCondensation::RExporter_
Epetra_Export * RExporter_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:83
EpetraExt::LinearProblem_StaticCondensation::RLMatrix_
Epetra_CrsMatrix * RLMatrix_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:105
EpetraExt::LinearProblem_StaticCondensation::ULHS_
Epetra_MultiVector * ULHS_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:86
EpetraExt::LinearProblem_StaticCondensation::LExporter_
Epetra_Export * LExporter_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:84
EpetraExt::LinearProblem_StaticCondensation::OldProblem_
Epetra_LinearProblem * OldProblem_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:62
EpetraExt::LinearProblem_StaticCondensation::OldGraph_
const Epetra_CrsGraph * OldGraph_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:65
EpetraExt::LinearProblem_StaticCondensation::UMap_
Epetra_Map * UMap_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:78
EpetraExt::LinearProblem_StaticCondensation::RMap_
Epetra_Map * RMap_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:79
EpetraExt::SameTypeTransform
Definition: EpetraExt_Transform.h:270
EpetraExt::LinearProblem_StaticCondensation::ULGraph_
Epetra_CrsGraph * ULGraph_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:96
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::OldMatrix_
Epetra_CrsMatrix * OldMatrix_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:66
EpetraExt::LinearProblem_StaticCondensation::RRGraph_
Epetra_CrsGraph * RRGraph_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:97
EpetraExt::LinearProblem_StaticCondensation::UUMatrix_
Epetra_CrsMatrix * UUMatrix_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:101
Epetra_CrsMatrix
EpetraExt::LinearProblem_StaticCondensation::RRMatrix_
Epetra_CrsMatrix * RRMatrix_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:104
EpetraExt::LinearProblem_StaticCondensation::URMatrix_
Epetra_CrsMatrix * URMatrix_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:102
EpetraExt::LinearProblem_StaticCondensation::LLHS_
Epetra_MultiVector * LLHS_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:88
EpetraExt::LinearProblem_StaticCondensation::LMap_
Epetra_Map * LMap_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:80
EpetraExt::LinearProblem_StaticCondensation::NewRHS_
Epetra_MultiVector * NewRHS_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:73
EpetraExt::Transform< Epetra_LinearProblem, Epetra_LinearProblem >::OriginalTypeRef
Epetra_LinearProblem & OriginalTypeRef
Definition: EpetraExt_Transform.h:74
EpetraExt::LinearProblem_StaticCondensation
Definition: EpetraExt_StaticCondensation_LinearProblem.h:56
EpetraExt::LinearProblem_StaticCondensation::URHS_
Epetra_MultiVector * URHS_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:90
EpetraExt::LinearProblem_StaticCondensation::operator()
NewTypeRef operator()(OriginalTypeRef orig)
Definition: EpetraExt_StaticCondensation_LinearProblem.cpp:105
EpetraExt::LinearProblem_StaticCondensation::NewProblem_
Epetra_LinearProblem * NewProblem_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:72
EpetraExt::LinearProblem_StaticCondensation::LLGraph_
Epetra_CrsGraph * LLGraph_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:99
EpetraExt::LinearProblem_StaticCondensation::NewGraph_
Epetra_CrsGraph * NewGraph_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:75
EpetraExt::LinearProblem_StaticCondensation::NewLHS_
Epetra_MultiVector * NewLHS_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:74
EpetraExt::LinearProblem_StaticCondensation::Exporter_
Epetra_Export * Exporter_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:68
Epetra_LinearProblem
EpetraExt::LinearProblem_StaticCondensation::UUGraph_
Epetra_CrsGraph * UUGraph_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:94
EpetraExt::LinearProblem_StaticCondensation::RRHS_
Epetra_MultiVector * RRHS_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:91
EpetraExt_Transform.h
Epetra_CrsGraph
EpetraExt::LinearProblem_StaticCondensation::~LinearProblem_StaticCondensation
~LinearProblem_StaticCondensation()
Definition: EpetraExt_StaticCondensation_LinearProblem.cpp:61
EpetraExt::LinearProblem_StaticCondensation::ULMatrix_
Epetra_CrsMatrix * ULMatrix_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:103
Epetra_MultiVector
EpetraExt::LinearProblem_StaticCondensation::OldLHS_
Epetra_MultiVector * OldLHS_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:64
EpetraExt::LinearProblem_StaticCondensation::LinearProblem_StaticCondensation
LinearProblem_StaticCondensation(int degree=1, bool verbose=false)
Definition: EpetraExt_StaticCondensation_LinearProblem.h:112
EpetraExt::LinearProblem_StaticCondensation::OldRHS_
Epetra_MultiVector * OldRHS_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:63
EpetraExt::LinearProblem_StaticCondensation::LLMatrix_
Epetra_CrsMatrix * LLMatrix_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:106
EpetraExt::LinearProblem_StaticCondensation::degree_
const int degree_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:58
EpetraExt::LinearProblem_StaticCondensation::RLGraph_
Epetra_CrsGraph * RLGraph_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:98
EpetraExt::LinearProblem_StaticCondensation::LRHS_
Epetra_MultiVector * LRHS_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:92
EpetraExt::LinearProblem_StaticCondensation::NewRowMap_
Epetra_Map * NewRowMap_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:70
EpetraExt::LinearProblem_StaticCondensation::RLHS_
Epetra_MultiVector * RLHS_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:87
EpetraExt::LinearProblem_StaticCondensation::NewColMap_
Epetra_Map * NewColMap_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:71
EpetraExt::LinearProblem_StaticCondensation::verbose_
const bool verbose_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:59
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
Epetra_Export
EpetraExt
EpetraExt::BlockCrsMatrix: A class for constructing a distributed block matrix.
Definition: EpetraExt_BlockCrsMatrix.cpp:46
EpetraExt::LinearProblem_StaticCondensation::NewMatrix_
Epetra_CrsMatrix * NewMatrix_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:76
Epetra_Map
EpetraExt::LinearProblem_StaticCondensation::URGraph_
Epetra_CrsGraph * URGraph_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:95
EpetraExt::LinearProblem_StaticCondensation::UExporter_
Epetra_Export * UExporter_
Definition: EpetraExt_StaticCondensation_LinearProblem.h:82