|
EpetraExt Package Browser (Single Doxygen Collection)
Development
|
Go to the documentation of this file.
82 Epetra_VbrMatrix * OrigMatrix = dynamic_cast<Epetra_VbrMatrix*>( orig.GetMatrix() );
85 { std::cout <<
"FAIL for Global!\n"; abort(); }
87 { std::cout <<
"FAIL for Global Indices!\n"; abort(); }
123 std::cout <<
"SVDs and Inverses!\n";
126 std::cout <<
"Block: " << i <<
" Size: " <<
VbrBlockDim_[i] << std::endl;
128 std::cout << *(
Inverses_[i]) << std::endl;
136 double * currLoc =
A;
155 std::cout <<
"-------------------\n";
156 std::cout <<
"BlockJacobi\n";
157 std::cout <<
"-------------------\n";
163 std::multiset<double> SVs;
170 if(
SVDs_[i]->S()[0] > MaxSV ) MaxSV =
SVDs_[i]->S()[0];
177 MaxSV = std::max( MaxSV, 1.0 );
181 std::multiset<double>::iterator iterSI = SVs.begin();
182 std::multiset<double>::iterator endSI = SVs.end();
186 std::cout << std::endl;
187 std::cout <<
"Singular Values\n";
188 for( ; iterSI != endSI; ++iterSI, i++ ) std::cout << i <<
"\t" << *iterSI << std::endl;
189 std::cout << std::endl;
198 abs_thresh = MaxSV * rel_thresh;
205 SVDs_[i]->Invert( rel_thresh, abs_thresh );
223 std::cout <<
"DiagBlock: " << i << std::endl;
225 std::cout <<
"RHSBlock: " << i << std::endl;
232 std::cout <<
"Block Jacobi'd Matrix!\n";
234 else std::cout << *(dynamic_cast<Epetra_VbrMatrix*>(
origObj_->
GetMatrix())) << std::endl;
235 std::cout <<
"Block Jacobi'd RHS!\n";
237 std::cout << std::endl;
242 std::cout <<
"Min Singular Value: " << MinSV << std::endl;
243 std::cout <<
"Max Singular Value: " << MaxSV << std::endl;
244 std::cout <<
"--------------------\n";
bool fwd()
Forward transfer of data from orig object input in the operator() method call to the new object creat...
Epetra_RowMatrix * GetMatrix() const
int ExtractView(double **A, int *MyLDA) const
std::vector< int > VbrBlockDim_
std::vector< Epetra_SerialDenseMatrix * > RHSBlocks_
std::vector< Epetra_SerialDenseMatrix ** > VbrBlocks_
std::vector< int * > VbrBlockIndices_
const Epetra_BlockMap & RowMap() const
bool rvs()
Reverse transfer of data from new object created in the operator() method call to the orig object inp...
Epetra_VbrMatrix * NewMatrix_
int NumMyBlockRows() const
NewTypeRef operator()(OriginalTypeRef orig)
Epetra_LinearProblem * NewProblem_
~LinearProblem_BlockJacobi()
bool DistributedGlobal() const
std::vector< Epetra_SerialDenseMatrix * > Inverses_
bool IndicesAreGlobal() const
int ExtractMyBlockRowView(int BlockRow, int &RowDim, int &NumBlockEntries, int *&BlockIndices, Epetra_SerialDenseMatrix **&Values) const
Epetra_MultiVector * GetRHS() const
std::vector< int > VbrBlockCnt_
EpetraExt::BlockCrsMatrix: A class for constructing a distributed block matrix.
std::vector< Epetra_SerialDenseSVD * > SVDs_