#include <QuadraticEigsolvOperators.h>
Inheritance diagram for QuadraticEigsolvOperators:
Public Member Functions | |
QuadraticEigsolvOperators (FemaxMesh &mesh_mixed, Teuchos::ParameterList ¶ms, const Epetra_Comm &MyComm) | |
~QuadraticEigsolvOperators () | |
const Epetra_Operator * | getA () const |
const Epetra_Operator * | getM () const |
const Epetra_Operator * | getAsigmaPrec (double sigma) |
const Epetra_Operator * | getHSolver () |
const Epetra_Operator * | getHPrec () |
Epetra_Operator * | getH () |
Epetra_Operator * | getY () const |
Epetra_Operator * | getC () const |
Private Member Functions | |
QuadraticEigsolvOperators (const QuadraticEigsolvOperators &leo) | |
QuadraticEigsolvOperators & | operator= (const QuadraticEigsolvOperators &ref) |
int | buildPreconditioner (double sigma) |
int | buildHierarchicalPrec (double sigma) |
int | buildHierarchicalHPrec () |
Epetra_CrsMatrix * | getH11 () |
void | matrixAssembly (FemaxMesh &mesh_mixed) |
Private Attributes | |
const Epetra_Comm & | Comm |
Epetra_FECrsMatrix * | A |
Epetra_FECrsMatrix * | M |
Epetra_CrsMatrix * | K |
Epetra_CrsMatrix * | K11 |
Epetra_CrsMatrix * | K12 |
Epetra_CrsMatrix * | K22 |
Epetra_CrsMatrix * | H |
Epetra_CrsMatrix * | H11 |
Epetra_CrsMatrix * | H12 |
Epetra_CrsMatrix * | H22 |
Epetra_FECrsMatrix * | Y |
Epetra_CrsMatrix * | Y11 |
Epetra_CrsMatrix * | C |
Epetra_Operator * | Prec |
Epetra_Operator * | h_solver_op_ |
Epetra_Operator * | HPrec |
double | _sigma_K |
Teuchos::ParameterList & | params_ |
Epetra_LinearProblem * | Aprec |
AztecOO * | AprecSolver |
int | non |
int | noe |
Definition at line 47 of file QuadraticEigsolvOperators.h.
QuadraticEigsolvOperators::QuadraticEigsolvOperators | ( | FemaxMesh & | mesh_mixed, | |
Teuchos::ParameterList & | params, | |||
const Epetra_Comm & | MyComm | |||
) |
Definition at line 20 of file QuadraticEigsolvOperators.cpp.
References FemaxMesh::get_lagrange_mesh(), FemaxMesh::get_nedelec_mesh(), NedelecMesh::get_num_global_mdofs(), LagrangeMesh::get_num_global_mdofs(), matrixAssembly(), noe, and non.
Here is the call graph for this function:
QuadraticEigsolvOperators::~QuadraticEigsolvOperators | ( | ) |
Definition at line 51 of file QuadraticEigsolvOperators.cpp.
References A, Aprec, AprecSolver, OutputCapturer::begin_capture(), C, OutputCapturer::end_capture(), OutputCapturer::get_stdout(), H, H11, H12, H22, h_solver_op_, HPrec, K, K11, K12, K22, M, Prec, and Y.
Here is the call graph for this function:
QuadraticEigsolvOperators::QuadraticEigsolvOperators | ( | const QuadraticEigsolvOperators & | leo | ) | [private] |
int QuadraticEigsolvOperators::buildHierarchicalHPrec | ( | ) | [private] |
int QuadraticEigsolvOperators::buildHierarchicalPrec | ( | double | sigma | ) | [private] |
Build 2-level preconditioner for A-sigma*M. Build matrices K11, Y11, H11, K22 and construct HierarchicalBasisPrec.
sigma | Shift sigma. |
Definition at line 216 of file QuadraticEigsolvOperators.cpp.
References A, Comm, getH11(), H11, K11, K12, K22, M, noe, params_, Prec, Y, and Y11.
Referenced by getAsigmaPrec().
Here is the call graph for this function:
int QuadraticEigsolvOperators::buildPreconditioner | ( | double | sigma | ) | [private] |
Definition at line 79 of file QuadraticEigsolvOperators.cpp.
References A, Aprec, AprecSolver, AbstractEigsolvOperators::build_Asigma(), K, M, and Prec.
Referenced by getAsigmaPrec().
Here is the call graph for this function:
const Epetra_Operator * QuadraticEigsolvOperators::getA | ( | ) | const [virtual] |
Implements AbstractEigsolvOperators.
Definition at line 655 of file QuadraticEigsolvOperators.cpp.
References A.
const Epetra_Operator * QuadraticEigsolvOperators::getAsigmaPrec | ( | double | sigma | ) | [virtual] |
Implements AbstractEigsolvOperators.
Definition at line 663 of file QuadraticEigsolvOperators.cpp.
References _sigma_K, A, AbstractEigsolvOperators::build_Asigma(), buildHierarchicalPrec(), buildPreconditioner(), K, M, params_, pbe_start, pbe_stop, Prec, and rExit.
Here is the call graph for this function:
Epetra_Operator * QuadraticEigsolvOperators::getC | ( | ) | const [virtual] |
Implements AbstractEigsolvOperators.
Definition at line 754 of file QuadraticEigsolvOperators.cpp.
References C.
Epetra_Operator * QuadraticEigsolvOperators::getH | ( | ) | [virtual] |
Implements AbstractEigsolvOperators.
Definition at line 746 of file QuadraticEigsolvOperators.cpp.
References H.
Epetra_CrsMatrix * QuadraticEigsolvOperators::getH11 | ( | ) | [private] |
Definition at line 602 of file QuadraticEigsolvOperators.cpp.
References Comm, H, H11, and non.
Referenced by buildHierarchicalPrec().
const Epetra_Operator * QuadraticEigsolvOperators::getHPrec | ( | ) | [virtual] |
Return preconditioner operator for H. If called for the first time, the preconditioner is constructed on-the-fly.
Implements AbstractEigsolvOperators.
Definition at line 722 of file QuadraticEigsolvOperators.cpp.
References OutputCapturer::begin_capture(), buildHierarchicalHPrec(), OutputCapturer::end_capture(), H, HPrec, OutputCapturer::log(), params_, pbe_start, pbe_stop, and rExit.
Referenced by getHSolver().
Here is the call graph for this function:
const Epetra_Operator * QuadraticEigsolvOperators::getHSolver | ( | ) | [virtual] |
Return solver object for H. If called for the first time, the solver is constructed on-the-fly.
Implements AbstractEigsolvOperators.
Definition at line 693 of file QuadraticEigsolvOperators.cpp.
References Comm, getHPrec(), H, h_solver_op_, params_, pbe_start, pbe_stop, rExit, and BlockPCGSolver::setPreconditioner().
Here is the call graph for this function:
const Epetra_Operator * QuadraticEigsolvOperators::getM | ( | ) | const [virtual] |
Implements AbstractEigsolvOperators.
Definition at line 659 of file QuadraticEigsolvOperators.cpp.
References M.
Epetra_Operator * QuadraticEigsolvOperators::getY | ( | ) | const [virtual] |
Implements AbstractEigsolvOperators.
Definition at line 750 of file QuadraticEigsolvOperators.cpp.
References Y.
void QuadraticEigsolvOperators::matrixAssembly | ( | FemaxMesh & | mesh_mixed | ) | [private] |
Definition at line 110 of file QuadraticEigsolvOperators.cpp.
References A, NedelecMesh::assembleAM(), C, Comm, FemaxMesh::constructY(), FemaxMesh::constructY_transp(), export_Epetra_CrsMatrix(), export_Epetra_Map(), LagrangeMesh::gdof(), NedelecMesh::gdof(), FemaxMesh::get_lagrange_mesh(), FemaxMesh::get_nedelec_mesh(), LagrangeMesh::get_num_my_dofs(), NedelecMesh::get_num_my_dofs(), H, mesh::ID_NONE, LagrangeMesh::is_owned_gdof(), NedelecMesh::is_owned_gdof(), log_matrix_stats(), log_mem_footprint(), M, LagrangeMesh::map_dof(), NedelecMesh::map_dof(), params_, pbe_start, pbe_stop, poor_man_matrix_matrix(), rInfoAll, and Y.
Referenced by QuadraticEigsolvOperators().
Here is the call graph for this function:
QuadraticEigsolvOperators& QuadraticEigsolvOperators::operator= | ( | const QuadraticEigsolvOperators & | ref | ) | [private] |
double QuadraticEigsolvOperators::_sigma_K [private] |
Shift sigma using which the preconditioner was constructed
Definition at line 111 of file QuadraticEigsolvOperators.h.
Referenced by getAsigmaPrec().
Epetra_FECrsMatrix* QuadraticEigsolvOperators::A [private] |
Definition at line 92 of file QuadraticEigsolvOperators.h.
Referenced by buildHierarchicalPrec(), buildPreconditioner(), getA(), getAsigmaPrec(), matrixAssembly(), and ~QuadraticEigsolvOperators().
Epetra_LinearProblem* QuadraticEigsolvOperators::Aprec [private] |
Definition at line 119 of file QuadraticEigsolvOperators.h.
Referenced by buildPreconditioner(), and ~QuadraticEigsolvOperators().
AztecOO* QuadraticEigsolvOperators::AprecSolver [private] |
Definition at line 120 of file QuadraticEigsolvOperators.h.
Referenced by buildPreconditioner(), and ~QuadraticEigsolvOperators().
Epetra_CrsMatrix* QuadraticEigsolvOperators::C [private] |
Definition at line 104 of file QuadraticEigsolvOperators.h.
Referenced by getC(), matrixAssembly(), and ~QuadraticEigsolvOperators().
const Epetra_Comm& QuadraticEigsolvOperators::Comm [private] |
Definition at line 91 of file QuadraticEigsolvOperators.h.
Referenced by buildHierarchicalHPrec(), buildHierarchicalPrec(), getH11(), getHSolver(), and matrixAssembly().
Epetra_CrsMatrix* QuadraticEigsolvOperators::H [private] |
Definition at line 98 of file QuadraticEigsolvOperators.h.
Referenced by buildHierarchicalHPrec(), getH(), getH11(), getHPrec(), getHSolver(), matrixAssembly(), and ~QuadraticEigsolvOperators().
Epetra_CrsMatrix* QuadraticEigsolvOperators::H11 [private] |
Definition at line 99 of file QuadraticEigsolvOperators.h.
Referenced by buildHierarchicalHPrec(), buildHierarchicalPrec(), getH11(), and ~QuadraticEigsolvOperators().
Epetra_CrsMatrix* QuadraticEigsolvOperators::H12 [private] |
Definition at line 100 of file QuadraticEigsolvOperators.h.
Referenced by buildHierarchicalHPrec(), and ~QuadraticEigsolvOperators().
Epetra_CrsMatrix* QuadraticEigsolvOperators::H22 [private] |
Definition at line 101 of file QuadraticEigsolvOperators.h.
Referenced by buildHierarchicalHPrec(), and ~QuadraticEigsolvOperators().
Epetra_Operator* QuadraticEigsolvOperators::h_solver_op_ [private] |
Definition at line 106 of file QuadraticEigsolvOperators.h.
Referenced by getHSolver(), and ~QuadraticEigsolvOperators().
Epetra_Operator* QuadraticEigsolvOperators::HPrec [private] |
Definition at line 107 of file QuadraticEigsolvOperators.h.
Referenced by buildHierarchicalHPrec(), getHPrec(), and ~QuadraticEigsolvOperators().
Epetra_CrsMatrix* QuadraticEigsolvOperators::K [private] |
Definition at line 94 of file QuadraticEigsolvOperators.h.
Referenced by buildPreconditioner(), getAsigmaPrec(), and ~QuadraticEigsolvOperators().
Epetra_CrsMatrix* QuadraticEigsolvOperators::K11 [private] |
Definition at line 95 of file QuadraticEigsolvOperators.h.
Referenced by buildHierarchicalPrec(), and ~QuadraticEigsolvOperators().
Epetra_CrsMatrix* QuadraticEigsolvOperators::K12 [private] |
Definition at line 96 of file QuadraticEigsolvOperators.h.
Referenced by buildHierarchicalPrec(), and ~QuadraticEigsolvOperators().
Epetra_CrsMatrix* QuadraticEigsolvOperators::K22 [private] |
Definition at line 97 of file QuadraticEigsolvOperators.h.
Referenced by buildHierarchicalPrec(), and ~QuadraticEigsolvOperators().
Epetra_FECrsMatrix* QuadraticEigsolvOperators::M [private] |
Definition at line 93 of file QuadraticEigsolvOperators.h.
Referenced by buildHierarchicalPrec(), buildPreconditioner(), getAsigmaPrec(), getM(), matrixAssembly(), and ~QuadraticEigsolvOperators().
int QuadraticEigsolvOperators::noe [private] |
Size of (1,1)-block in matrix A and M.
Definition at line 125 of file QuadraticEigsolvOperators.h.
Referenced by buildHierarchicalHPrec(), buildHierarchicalPrec(), and QuadraticEigsolvOperators().
int QuadraticEigsolvOperators::non [private] |
Size of (1,1)-block in matrix H.
Definition at line 123 of file QuadraticEigsolvOperators.h.
Referenced by buildHierarchicalHPrec(), getH11(), and QuadraticEigsolvOperators().
Teuchos::ParameterList& QuadraticEigsolvOperators::params_ [private] |
Parameter list
Definition at line 114 of file QuadraticEigsolvOperators.h.
Referenced by buildHierarchicalHPrec(), buildHierarchicalPrec(), getAsigmaPrec(), getHPrec(), getHSolver(), and matrixAssembly().
Epetra_Operator* QuadraticEigsolvOperators::Prec [private] |
Definition at line 105 of file QuadraticEigsolvOperators.h.
Referenced by buildHierarchicalPrec(), buildPreconditioner(), getAsigmaPrec(), and ~QuadraticEigsolvOperators().
Epetra_FECrsMatrix* QuadraticEigsolvOperators::Y [private] |
Definition at line 102 of file QuadraticEigsolvOperators.h.
Referenced by buildHierarchicalPrec(), getY(), matrixAssembly(), and ~QuadraticEigsolvOperators().
Epetra_CrsMatrix* QuadraticEigsolvOperators::Y11 [private] |