Ifpack Package Browser (Single Doxygen Collection)  Development
Ifpack_CrsRiluk.h
Go to the documentation of this file.
1 /*@HEADER
2 // ***********************************************************************
3 //
4 // Ifpack: Object-Oriented Algebraic Preconditioner Package
5 // Copyright (2002) Sandia Corporation
6 //
7 // Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
8 // license for use of this work by or on behalf of the U.S. Government.
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 
43 #ifndef _IFPACK_CRSRILUK_H_
44 #define _IFPACK_CRSRILUK_H_
45 
46 #include "Ifpack_ConfigDefs.h"
47 #include "Ifpack_ScalingType.h"
48 #include "Ifpack_IlukGraph.h"
49 #include "Epetra_ConfigDefs.h"
50 #include "Epetra_CompObject.h"
51 #include "Epetra_Operator.h"
52 #include "Epetra_CrsMatrix.h"
53 #include "Epetra_Object.h"
54 #include "Epetra_MultiVector.h"
55 #include "Epetra_Vector.h"
56 #include "Epetra_Map.h"
57 class Epetra_Comm;
58 class Epetra_VbrMatrix;
59 class Epetra_RowMatrix;
60 
61 #include "Teuchos_RefCountPtr.hpp"
62 
63 namespace Teuchos {
64  class ParameterList;
65 }
66 
68 
210 class Ifpack_CrsRiluk: public Epetra_Object, public Epetra_CompObject, public virtual Epetra_Operator {
211 
212  // Give ostream << function some access to private and protected data/functions.
213 
214  friend std::ostream& operator << (std::ostream& os, const Ifpack_CrsRiluk& A);
215 
216  public:
218 
223  Ifpack_CrsRiluk(const Ifpack_IlukGraph & Graph_in);
224 
226  Ifpack_CrsRiluk(const Ifpack_CrsRiluk & Matrix);
227 
229  virtual ~Ifpack_CrsRiluk();
230 
232 
238  int InitValues(const Epetra_CrsMatrix &A);
239 
241 
247 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES // FIXME LONG LONG
248  int InitValues(const Epetra_VbrMatrix &A);
249 #endif
250 
252  bool ValuesInitialized() const {return(ValuesInitialized_);};
253 
255  void SetRelaxValue( double RelaxValue) {RelaxValue_ = RelaxValue; return;}
256 
258  void SetAbsoluteThreshold( double Athresh) {Athresh_ = Athresh; return;}
259 
261  void SetRelativeThreshold( double Rthresh) {Rthresh_ = Rthresh; return;}
262 
264  void SetOverlapMode( Epetra_CombineMode OverlapMode) {OverlapMode_ = OverlapMode; return;}
265 
267  /* This method is only available if the Teuchos package is enabled.
268  This method recognizes four parameter names: relax_value,
269  absolute_threshold, relative_threshold and overlap_mode. These names are
270  case insensitive, and in each case except overlap_mode, the ParameterEntry
271  must have type double. For overlap_mode, the ParameterEntry must have
272  type Epetra_CombineMode.
273  */
274  int SetParameters(const Teuchos::ParameterList& parameterlist,
275  bool cerr_warning_if_unused=false);
276 
278 
286  int Factor();
287 
289  bool Factored() const {return(Factored_);};
290 
291 
292  // Mathematical functions.
293 
294 
296 
306  int Solve(bool Trans, const Epetra_MultiVector& X, Epetra_MultiVector& Y) const;
307 
309 
319  int Multiply(bool Trans, const Epetra_MultiVector& X, Epetra_MultiVector& Y) const;
320 
322 
330  int Condest(bool Trans, double & ConditionNumberEstimate) const;
331  // Attribute access functions
332 
334  double GetRelaxValue() {return RelaxValue_;}
335 
337  double GetAbsoluteThreshold() {return Athresh_;}
338 
340  double GetRelativeThreshold() {return Rthresh_;}
341 
344 
345 
346 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
347  int NumGlobalRows() const {return(Graph().NumGlobalRows());};
349 
351  int NumGlobalCols() const {return(Graph().NumGlobalCols());};
352 
354  int NumGlobalNonzeros() const {return(L().NumGlobalNonzeros()+U().NumGlobalNonzeros());};
355 
357  virtual int NumGlobalBlockDiagonals() const {return(Graph().NumGlobalBlockDiagonals());};
358 #endif
359 
360  long long NumGlobalRows64() const {return(Graph().NumGlobalRows64());};
361  long long NumGlobalCols64() const {return(Graph().NumGlobalCols64());};
362  long long NumGlobalNonzeros64() const {return(L().NumGlobalNonzeros64()+U().NumGlobalNonzeros64());};
363  virtual long long NumGlobalBlockDiagonals64() const {return(Graph().NumGlobalBlockDiagonals64());};
364 
366  int NumMyRows() const {return(Graph().NumMyRows());};
367 
369  int NumMyCols() const {return(Graph().NumMyCols());};
370 
372  int NumMyNonzeros() const {return(L().NumMyNonzeros()+U().NumMyNonzeros());};
373 
375  virtual int NumMyBlockDiagonals() const {return(Graph().NumMyBlockDiagonals());};
376 
378  virtual int NumMyDiagonals() const {return(NumMyDiagonals_);};
379 
381 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
382  int IndexBase() const {return(Graph().IndexBase());};
383 #endif
384  long long IndexBase64() const {return(Graph().IndexBase64());};
385 
387  const Ifpack_IlukGraph & Graph() const {return(Graph_);};
388 
390  const Epetra_CrsMatrix & L() const {return(*L_);};
391 
393  const Epetra_Vector & D() const {return(*D_);};
394 
396  const Epetra_CrsMatrix & U() const {return(*U_);};
397 
399 
401  const char * Label() const {return(Epetra_Object::Label());};
402 
404 
413  int SetUseTranspose(bool UseTranspose_in) {UseTranspose_ = UseTranspose_in; return(0);};
414 
416 
427  int Apply(const Epetra_MultiVector& X, Epetra_MultiVector& Y) const {
428  return(Multiply(Ifpack_CrsRiluk::UseTranspose(), X, Y));};
429 
431 
445  return(Solve(Ifpack_CrsRiluk::UseTranspose(), X, Y));};
446 
448  double NormInf() const {return(0.0);};
449 
451  bool HasNormInf() const {return(false);};
452 
454  bool UseTranspose() const {return(UseTranspose_);};
455 
457  const Epetra_Map & OperatorDomainMap() const {return(U_->OperatorDomainMap());};
458 
460  const Epetra_Map & OperatorRangeMap() const{return(L_->OperatorRangeMap());};
461 
463  const Epetra_Comm & Comm() const{return(Comm_);};
465 
466  protected:
467  void SetFactored(bool Flag) {Factored_ = Flag;};
468  void SetValuesInitialized(bool Flag) {ValuesInitialized_ = Flag;};
469  bool Allocated() const {return(Allocated_);};
470  int SetAllocated(bool Flag) {Allocated_ = Flag; return(0);};
471  int BlockGraph2PointGraph(const Epetra_CrsGraph & BG, Epetra_CrsGraph & PG, bool Upper);
472 
473  private:
474 
475 
476  int AllocateCrs();
477  int AllocateVbr();
478  int InitAllValues(const Epetra_RowMatrix & A, int MaxNumEntries);
479  int BlockMap2PointMap(const Epetra_BlockMap & BlockMap, Teuchos::RefCountPtr<Epetra_Map>* PointMap);
480  int GenerateXY(bool Trans,
481  const Epetra_MultiVector& Xin, const Epetra_MultiVector& Yin,
482  Teuchos::RefCountPtr<Epetra_MultiVector>* Xout,
483  Teuchos::RefCountPtr<Epetra_MultiVector>* Yout) const;
488  Teuchos::RefCountPtr<Epetra_Map> IlukRowMap_;
489  Teuchos::RefCountPtr<Epetra_Map> IlukDomainMap_;
490  Teuchos::RefCountPtr<Epetra_Map> IlukRangeMap_;
491  Teuchos::RefCountPtr<const Epetra_Map> U_DomainMap_;
492  Teuchos::RefCountPtr<const Epetra_Map> L_RangeMap_;
494  Teuchos::RefCountPtr<Epetra_CrsMatrix> L_;
495  Teuchos::RefCountPtr<Epetra_CrsMatrix> U_;
496  Teuchos::RefCountPtr<Epetra_CrsGraph> L_Graph_;
497  Teuchos::RefCountPtr<Epetra_CrsGraph> U_Graph_;
498  Teuchos::RefCountPtr<Epetra_Vector> D_;
500 
504  bool Factored_;
505  double RelaxValue_;
506  double Athresh_;
507  double Rthresh_;
508  mutable double Condest_;
509 
510  mutable Teuchos::RefCountPtr<Epetra_MultiVector> OverlapX_;
511  mutable Teuchos::RefCountPtr<Epetra_MultiVector> OverlapY_;
512  mutable Teuchos::RefCountPtr<Epetra_MultiVector> VbrX_;
513  mutable Teuchos::RefCountPtr<Epetra_MultiVector> VbrY_;
515 
516 
517 };
518 
520 std::ostream& operator << (std::ostream& os, const Ifpack_CrsRiluk& A);
521 
522 #endif /* _IFPACK_CRSRILUK_H_ */
Ifpack_CrsRiluk::Graph
const Ifpack_IlukGraph & Graph() const
returns the address of the Ifpack_IlukGraph associated with this factored matrix.
Definition: Ifpack_CrsRiluk.h:387
Ifpack_CrsRiluk::IlukRowMap_
Teuchos::RefCountPtr< Epetra_Map > IlukRowMap_
Definition: Ifpack_CrsRiluk.h:488
Epetra_Object
Ifpack_IlukGraph.h
Ifpack_CrsRiluk::GetAbsoluteThreshold
double GetAbsoluteThreshold()
Get absolute threshold value.
Definition: Ifpack_CrsRiluk.h:337
Ifpack_CrsRiluk
Ifpack_CrsRiluk: A class for constructing and using an incomplete lower/upper (ILU) factorization of ...
Definition: Ifpack_CrsRiluk.h:210
Ifpack_CrsRiluk::Comm
const Epetra_Comm & Comm() const
Returns the Epetra_BlockMap object associated with the range of this matrix operator.
Definition: Ifpack_CrsRiluk.h:463
Ifpack_CrsRiluk::L_Graph_
Teuchos::RefCountPtr< Epetra_CrsGraph > L_Graph_
Definition: Ifpack_CrsRiluk.h:496
Ifpack_CrsRiluk::Multiply
int Multiply(bool Trans, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
Returns the result of multiplying U, D and L in that order on an Epetra_MultiVector X in Y.
Definition: Ifpack_CrsRiluk.cpp:554
Ifpack_CrsRiluk::L_
Teuchos::RefCountPtr< Epetra_CrsMatrix > L_
Definition: Ifpack_CrsRiluk.h:494
Ifpack_CrsRiluk::NumMyCols
int NumMyCols() const
Returns the number of local matrix columns.
Definition: Ifpack_CrsRiluk.h:369
Ifpack_CrsRiluk::Graph_
const Ifpack_IlukGraph & Graph_
Definition: Ifpack_CrsRiluk.h:487
Ifpack_CrsRiluk::NumGlobalBlockDiagonals
virtual int NumGlobalBlockDiagonals() const
Returns the number of diagonal entries found in the global input graph.
Definition: Ifpack_CrsRiluk.h:357
Ifpack_CrsRiluk::NumMyBlockDiagonals
virtual int NumMyBlockDiagonals() const
Returns the number of diagonal entries found in the local input graph.
Definition: Ifpack_CrsRiluk.h:375
Ifpack_CrsRiluk::Comm_
const Epetra_Comm & Comm_
Definition: Ifpack_CrsRiluk.h:493
Ifpack_CrsRiluk::NumMyDiagonals
virtual int NumMyDiagonals() const
Returns the number of nonzero diagonal values found in matrix.
Definition: Ifpack_CrsRiluk.h:378
Ifpack_CrsRiluk::Label
const char * Label() const
Returns a character string describing the operator.
Definition: Ifpack_CrsRiluk.h:401
Ifpack_CrsRiluk::NumGlobalNonzeros
int NumGlobalNonzeros() const
Returns the number of nonzero entries in the global graph.
Definition: Ifpack_CrsRiluk.h:354
Ifpack_CrsRiluk::GenerateXY
int GenerateXY(bool Trans, const Epetra_MultiVector &Xin, const Epetra_MultiVector &Yin, Teuchos::RefCountPtr< Epetra_MultiVector > *Xout, Teuchos::RefCountPtr< Epetra_MultiVector > *Yout) const
Definition: Ifpack_CrsRiluk.cpp:734
Ifpack_CrsRiluk::InitValues
int InitValues(const Epetra_CrsMatrix &A)
Initialize L and U with values from user matrix A.
Definition: Ifpack_CrsRiluk.cpp:182
Ifpack_CrsRiluk::VbrY_
Teuchos::RefCountPtr< Epetra_MultiVector > VbrY_
Definition: Ifpack_CrsRiluk.h:513
Ifpack_CrsRiluk::VbrX_
Teuchos::RefCountPtr< Epetra_MultiVector > VbrX_
Definition: Ifpack_CrsRiluk.h:512
Ifpack_ScalingType.h
Ifpack_ScalingType enumerable type.
Ifpack_CrsRiluk::ApplyInverse
int ApplyInverse(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
Returns the result of a Epetra_Operator inverse applied to an Epetra_MultiVector X in Y.
Definition: Ifpack_CrsRiluk.h:444
Ifpack_CrsRiluk::GetRelativeThreshold
double GetRelativeThreshold()
Get relative threshold value.
Definition: Ifpack_CrsRiluk.h:340
Ifpack_CrsRiluk::NumMyDiagonals_
int NumMyDiagonals_
Definition: Ifpack_CrsRiluk.h:501
Ifpack_CrsRiluk::OperatorRangeMap
const Epetra_Map & OperatorRangeMap() const
Returns the Epetra_Map object associated with the range of this operator.
Definition: Ifpack_CrsRiluk.h:460
Ifpack_CrsRiluk::UserMatrixIsVbr_
bool UserMatrixIsVbr_
Definition: Ifpack_CrsRiluk.h:484
Ifpack_CrsRiluk::NumGlobalBlockDiagonals64
virtual long long NumGlobalBlockDiagonals64() const
Definition: Ifpack_CrsRiluk.h:363
Ifpack_IlukGraph
Ifpack_IlukGraph: A class for constructing level filled graphs for use with ILU(k) class precondition...
Definition: Ifpack_IlukGraph.h:77
Epetra_Comm
Ifpack_CrsRiluk::U
const Epetra_CrsMatrix & U() const
Returns the address of the L factor associated with this factored matrix.
Definition: Ifpack_CrsRiluk.h:396
Ifpack_CrsRiluk::operator<<
friend std::ostream & operator<<(std::ostream &os, const Ifpack_CrsRiluk &A)
<< operator will work for Ifpack_CrsRiluk.
Definition: Ifpack_CrsRiluk.cpp:795
Ifpack_CrsRiluk::IndexBase64
long long IndexBase64() const
Definition: Ifpack_CrsRiluk.h:384
Ifpack_CrsRiluk::OperatorDomainMap
const Epetra_Map & OperatorDomainMap() const
Returns the Epetra_Map object associated with the domain of this operator.
Definition: Ifpack_CrsRiluk.h:457
Ifpack_CrsRiluk::SetRelaxValue
void SetRelaxValue(double RelaxValue)
Set RILU(k) relaxation parameter.
Definition: Ifpack_CrsRiluk.h:255
Ifpack_CrsRiluk::Condest_
double Condest_
Definition: Ifpack_CrsRiluk.h:508
Ifpack_CrsRiluk::OverlapMode_
Epetra_CombineMode OverlapMode_
Definition: Ifpack_CrsRiluk.h:514
Epetra_CrsMatrix
Ifpack_CrsRiluk::Factored
bool Factored() const
If factor is completed, this query returns true, otherwise it returns false.
Definition: Ifpack_CrsRiluk.h:289
Ifpack_CrsRiluk::AllocateVbr
int AllocateVbr()
Definition: Ifpack_CrsRiluk.cpp:124
Ifpack_CrsRiluk::IlukRangeMap_
Teuchos::RefCountPtr< Epetra_Map > IlukRangeMap_
Definition: Ifpack_CrsRiluk.h:490
Ifpack_CrsRiluk::GetRelaxValue
double GetRelaxValue()
Get RILU(k) relaxation parameter.
Definition: Ifpack_CrsRiluk.h:334
Ifpack_CrsRiluk::UseTranspose
bool UseTranspose() const
Returns the current UseTranspose setting.
Definition: Ifpack_CrsRiluk.h:454
Ifpack_CrsRiluk::D_
Teuchos::RefCountPtr< Epetra_Vector > D_
Definition: Ifpack_CrsRiluk.h:498
Ifpack_CrsRiluk::NumMyRows
int NumMyRows() const
Returns the number of local matrix rows.
Definition: Ifpack_CrsRiluk.h:366
Ifpack_CrsRiluk::~Ifpack_CrsRiluk
virtual ~Ifpack_CrsRiluk()
Ifpack_CrsRiluk Destructor.
Definition: Ifpack_CrsRiluk.cpp:105
Ifpack_CrsRiluk::Apply
int Apply(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
Returns the result of a Epetra_Operator applied to a Epetra_MultiVector X in Y.
Definition: Ifpack_CrsRiluk.h:427
Ifpack_ConfigDefs.h
Ifpack_CrsRiluk::U_Graph_
Teuchos::RefCountPtr< Epetra_CrsGraph > U_Graph_
Definition: Ifpack_CrsRiluk.h:497
Ifpack_CrsRiluk::Allocated
bool Allocated() const
Definition: Ifpack_CrsRiluk.h:469
Ifpack_CrsRiluk::D
const Epetra_Vector & D() const
Returns the address of the D factor associated with this factored matrix.
Definition: Ifpack_CrsRiluk.h:393
Ifpack_CrsRiluk::NumGlobalCols
int NumGlobalCols() const
Returns the number of global matrix columns.
Definition: Ifpack_CrsRiluk.h:351
Epetra_RowMatrix
Ifpack_CrsRiluk::NumGlobalNonzeros64
long long NumGlobalNonzeros64() const
Definition: Ifpack_CrsRiluk.h:362
Ifpack_CrsRiluk::Allocated_
bool Allocated_
Definition: Ifpack_CrsRiluk.h:502
Ifpack_CrsRiluk::BlockMap2PointMap
int BlockMap2PointMap(const Epetra_BlockMap &BlockMap, Teuchos::RefCountPtr< Epetra_Map > *PointMap)
Definition: Ifpack_CrsRiluk.cpp:675
operator<<
std::ostream & operator<<(std::ostream &os, const Ifpack_CrsRiluk &A)
<< operator will work for Ifpack_CrsRiluk.
Definition: Ifpack_CrsRiluk.cpp:795
Ifpack_CrsRiluk::SetUseTranspose
int SetUseTranspose(bool UseTranspose_in)
If set true, transpose of this operator will be applied.
Definition: Ifpack_CrsRiluk.h:413
Ifpack_CrsRiluk::SetFactored
void SetFactored(bool Flag)
Definition: Ifpack_CrsRiluk.h:467
Epetra_Object::Label
virtual const char * Label() const
Ifpack_CrsRiluk::Ifpack_CrsRiluk
Ifpack_CrsRiluk(const Ifpack_IlukGraph &Graph_in)
Ifpack_CrsRiluk constuctor with variable number of indices per row.
Definition: Ifpack_CrsRiluk.cpp:55
Ifpack_CrsRiluk::IndexBase
int IndexBase() const
Returns the index base for row and column indices for this graph.
Definition: Ifpack_CrsRiluk.h:382
Epetra_BlockMap
Epetra_Vector
Ifpack_CrsRiluk::Factor
int Factor()
Compute ILU factors L and U using the specified graph, diagonal perturbation thresholds and relaxatio...
Definition: Ifpack_CrsRiluk.cpp:361
Epetra_CombineMode
Epetra_CombineMode
Ifpack_CrsRiluk::L_RangeMap_
Teuchos::RefCountPtr< const Epetra_Map > L_RangeMap_
Definition: Ifpack_CrsRiluk.h:492
Ifpack_CrsRiluk::AllocateCrs
int AllocateCrs()
Definition: Ifpack_CrsRiluk.cpp:112
Ifpack_CrsRiluk::L
const Epetra_CrsMatrix & L() const
Returns the address of the L factor associated with this factored matrix.
Definition: Ifpack_CrsRiluk.h:390
Ifpack_CrsRiluk::IsOverlapped_
bool IsOverlapped_
Definition: Ifpack_CrsRiluk.h:486
Ifpack_CrsRiluk::SetAllocated
int SetAllocated(bool Flag)
Definition: Ifpack_CrsRiluk.h:470
Epetra_CrsGraph
Ifpack_CrsRiluk::HasNormInf
bool HasNormInf() const
Returns false because this class cannot compute an Inf-norm.
Definition: Ifpack_CrsRiluk.h:451
Ifpack_CrsRiluk::NumGlobalRows
int NumGlobalRows() const
Returns the number of global matrix rows.
Definition: Ifpack_CrsRiluk.h:348
Ifpack_CrsRiluk::NumMyNonzeros
int NumMyNonzeros() const
Returns the number of nonzero entries in the local graph.
Definition: Ifpack_CrsRiluk.h:372
Ifpack_CrsRiluk::SetValuesInitialized
void SetValuesInitialized(bool Flag)
Definition: Ifpack_CrsRiluk.h:468
Epetra_MultiVector
A
Ifpack_CrsRiluk::SetAbsoluteThreshold
void SetAbsoluteThreshold(double Athresh)
Set absolute threshold value.
Definition: Ifpack_CrsRiluk.h:258
Ifpack_CrsRiluk::Rthresh_
double Rthresh_
Definition: Ifpack_CrsRiluk.h:507
Ifpack_CrsRiluk::SetRelativeThreshold
void SetRelativeThreshold(double Rthresh)
Set relative threshold value.
Definition: Ifpack_CrsRiluk.h:261
Ifpack_CrsRiluk::RelaxValue_
double RelaxValue_
Definition: Ifpack_CrsRiluk.h:505
Ifpack_CrsRiluk::NormInf
double NormInf() const
Returns 0.0 because this class cannot compute Inf-norm.
Definition: Ifpack_CrsRiluk.h:448
Ifpack_CrsRiluk::ValuesInitialized_
bool ValuesInitialized_
Definition: Ifpack_CrsRiluk.h:503
Ifpack_CrsRiluk::GetOverlapMode
Epetra_CombineMode GetOverlapMode()
Get overlap mode type.
Definition: Ifpack_CrsRiluk.h:343
Ifpack_CrsRiluk::Solve
int Solve(bool Trans, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
Returns the result of a Ifpack_CrsRiluk forward/back solve on a Epetra_MultiVector X in Y (works for ...
Definition: Ifpack_CrsRiluk.cpp:513
Ifpack_CrsRiluk::Athresh_
double Athresh_
Definition: Ifpack_CrsRiluk.h:506
Ifpack_CrsRiluk::U_DomainMap_
Teuchos::RefCountPtr< const Epetra_Map > U_DomainMap_
Definition: Ifpack_CrsRiluk.h:491
Epetra_CompObject
Ifpack_CrsRiluk::OverlapY_
Teuchos::RefCountPtr< Epetra_MultiVector > OverlapY_
Definition: Ifpack_CrsRiluk.h:511
Ifpack_CrsRiluk::SetOverlapMode
void SetOverlapMode(Epetra_CombineMode OverlapMode)
Set overlap mode type.
Definition: Ifpack_CrsRiluk.h:264
Teuchos::ParameterList
Ifpack_CrsRiluk::SetParameters
int SetParameters(const Teuchos::ParameterList &parameterlist, bool cerr_warning_if_unused=false)
Set parameters using a Teuchos::ParameterList object.
Definition: Ifpack_CrsRiluk.cpp:162
Ifpack_CrsRiluk::Condest
int Condest(bool Trans, double &ConditionNumberEstimate) const
Returns the maximum over all the condition number estimate for each local ILU set of factors.
Definition: Ifpack_CrsRiluk.cpp:596
Ifpack_CrsRiluk::ValuesInitialized
bool ValuesInitialized() const
If values have been initialized, this query returns true, otherwise it returns false.
Definition: Ifpack_CrsRiluk.h:252
Ifpack_CrsRiluk::UseTranspose_
bool UseTranspose_
Definition: Ifpack_CrsRiluk.h:499
Ifpack_CrsRiluk::NumGlobalRows64
long long NumGlobalRows64() const
Definition: Ifpack_CrsRiluk.h:360
Teuchos
Ifpack_CrsRiluk::Factored_
bool Factored_
Definition: Ifpack_CrsRiluk.h:504
Ifpack_CrsRiluk::IlukDomainMap_
Teuchos::RefCountPtr< Epetra_Map > IlukDomainMap_
Definition: Ifpack_CrsRiluk.h:489
Epetra_VbrMatrix
Epetra_Operator
Epetra_Map
Ifpack_CrsRiluk::OverlapX_
Teuchos::RefCountPtr< Epetra_MultiVector > OverlapX_
Definition: Ifpack_CrsRiluk.h:510
Ifpack_CrsRiluk::U_
Teuchos::RefCountPtr< Epetra_CrsMatrix > U_
Definition: Ifpack_CrsRiluk.h:495
Ifpack_CrsRiluk::InitAllValues
int InitAllValues(const Epetra_RowMatrix &A, int MaxNumEntries)
Definition: Ifpack_CrsRiluk.cpp:251
Ifpack_CrsRiluk::BlockGraph2PointGraph
int BlockGraph2PointGraph(const Epetra_CrsGraph &BG, Epetra_CrsGraph &PG, bool Upper)
Definition: Ifpack_CrsRiluk.cpp:614
Ifpack_CrsRiluk::NumGlobalCols64
long long NumGlobalCols64() const
Definition: Ifpack_CrsRiluk.h:361
Ifpack_CrsRiluk::UserMatrixIsCrs_
bool UserMatrixIsCrs_
Definition: Ifpack_CrsRiluk.h:485