#include <LinearEigsolvOperators.h>
Inheritance diagram for LinearEigsolvOperators:
Public Member Functions | |
LinearEigsolvOperators (FemaxMesh &mesh_mixed, Teuchos::ParameterList ¶ms, const Epetra_Comm &MyComm) | |
~LinearEigsolvOperators () | |
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 | |
LinearEigsolvOperators (const LinearEigsolvOperators &leo) | |
LinearEigsolvOperators & | operator= (const LinearEigsolvOperators &ref) |
int | buildPreconditioner (double sigma) |
void | matrixAssembly (FemaxMesh &mesh_mixed) |
Private Attributes | |
FemaxMesh & | mesh_mixed_ |
const Epetra_Comm & | Comm |
Epetra_FECrsMatrix * | A |
Epetra_FECrsMatrix * | M |
Epetra_CrsMatrix * | K |
Epetra_CrsMatrix * | H |
Epetra_FECrsMatrix * | Y |
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 |
Definition at line 47 of file LinearEigsolvOperators.h.
LinearEigsolvOperators::LinearEigsolvOperators | ( | FemaxMesh & | mesh_mixed, | |
Teuchos::ParameterList & | params, | |||
const Epetra_Comm & | MyComm | |||
) |
Definition at line 26 of file LinearEigsolvOperators.cpp.
References matrixAssembly().
Here is the call graph for this function:
LinearEigsolvOperators::~LinearEigsolvOperators | ( | ) |
Definition at line 48 of file LinearEigsolvOperators.cpp.
References A, Aprec, AprecSolver, OutputCapturer::begin_capture(), C, OutputCapturer::end_capture(), OutputCapturer::get_stdout(), H, h_solver_op_, HPrec, K, M, Prec, and Y.
Here is the call graph for this function:
LinearEigsolvOperators::LinearEigsolvOperators | ( | const LinearEigsolvOperators & | leo | ) | [private] |
Copy constructor (disabled).
leo |
int LinearEigsolvOperators::buildPreconditioner | ( | double | sigma | ) | [private] |
Build preconditioner for A-sigma*M.
Build K = A-sigma*M. Store preconditioner in Prec.
sigma | Shift. | |
map_nedelec |
Definition at line 70 of file LinearEigsolvOperators.cpp.
References A, Aprec, AprecSolver, OutputCapturer::begin_capture(), AbstractEigsolvOperators::build_Asigma(), OutputCapturer::end_capture(), export_Epetra_CrsMatrix(), OutputCapturer::get_stdout(), H, K, M, params_, pbe_start, pbe_stop, Prec, rExit, and Y.
Referenced by getAsigmaPrec().
Here is the call graph for this function:
const Epetra_Operator * LinearEigsolvOperators::getA | ( | ) | const [virtual] |
Implements AbstractEigsolvOperators.
Definition at line 307 of file LinearEigsolvOperators.cpp.
References A.
const Epetra_Operator * LinearEigsolvOperators::getAsigmaPrec | ( | double | sigma | ) | [virtual] |
Implements AbstractEigsolvOperators.
Definition at line 315 of file LinearEigsolvOperators.cpp.
References _sigma_K, buildPreconditioner(), pbe_start, pbe_stop, and Prec.
Here is the call graph for this function:
Epetra_Operator * LinearEigsolvOperators::getC | ( | ) | const [virtual] |
Implements AbstractEigsolvOperators.
Definition at line 433 of file LinearEigsolvOperators.cpp.
References C.
Epetra_Operator * LinearEigsolvOperators::getH | ( | ) | [virtual] |
Implements AbstractEigsolvOperators.
Definition at line 425 of file LinearEigsolvOperators.cpp.
References H.
const Epetra_Operator * LinearEigsolvOperators::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 356 of file LinearEigsolvOperators.cpp.
References OutputCapturer::begin_capture(), 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 * LinearEigsolvOperators::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 328 of file LinearEigsolvOperators.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 * LinearEigsolvOperators::getM | ( | ) | const [virtual] |
Implements AbstractEigsolvOperators.
Definition at line 311 of file LinearEigsolvOperators.cpp.
References M.
Epetra_Operator * LinearEigsolvOperators::getY | ( | ) | const [virtual] |
Implements AbstractEigsolvOperators.
Definition at line 429 of file LinearEigsolvOperators.cpp.
References Y.
void LinearEigsolvOperators::matrixAssembly | ( | FemaxMesh & | mesh_mixed | ) | [private] |
Create global FE matrices A, M, Y, C and H.
mesh_mixed | Mesh data structure. |
Definition at line 179 of file LinearEigsolvOperators.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(), and Y.
Referenced by LinearEigsolvOperators().
Here is the call graph for this function:
LinearEigsolvOperators& LinearEigsolvOperators::operator= | ( | const LinearEigsolvOperators & | ref | ) | [private] |
Assignment operator (disabled).
ref |
double LinearEigsolvOperators::_sigma_K [private] |
Shift sigma using which the preconditioner was constructed
Definition at line 114 of file LinearEigsolvOperators.h.
Referenced by getAsigmaPrec().
Epetra_FECrsMatrix* LinearEigsolvOperators::A [private] |
Definition at line 98 of file LinearEigsolvOperators.h.
Referenced by buildPreconditioner(), getA(), matrixAssembly(), and ~LinearEigsolvOperators().
Epetra_LinearProblem* LinearEigsolvOperators::Aprec [private] |
Definition at line 122 of file LinearEigsolvOperators.h.
Referenced by buildPreconditioner(), and ~LinearEigsolvOperators().
AztecOO* LinearEigsolvOperators::AprecSolver [private] |
Definition at line 123 of file LinearEigsolvOperators.h.
Referenced by buildPreconditioner(), and ~LinearEigsolvOperators().
Epetra_CrsMatrix* LinearEigsolvOperators::C [private] |
Definition at line 103 of file LinearEigsolvOperators.h.
Referenced by getC(), matrixAssembly(), and ~LinearEigsolvOperators().
const Epetra_Comm& LinearEigsolvOperators::Comm [private] |
Definition at line 97 of file LinearEigsolvOperators.h.
Referenced by getHSolver(), and matrixAssembly().
Epetra_CrsMatrix* LinearEigsolvOperators::H [private] |
Definition at line 101 of file LinearEigsolvOperators.h.
Referenced by buildPreconditioner(), getH(), getHPrec(), getHSolver(), matrixAssembly(), and ~LinearEigsolvOperators().
Epetra_Operator* LinearEigsolvOperators::h_solver_op_ [private] |
Operator for solving with H (using ApplyInverse())
Definition at line 108 of file LinearEigsolvOperators.h.
Referenced by getHSolver(), and ~LinearEigsolvOperators().
Epetra_Operator* LinearEigsolvOperators::HPrec [private] |
Operator for preconditioning matrix H
Definition at line 111 of file LinearEigsolvOperators.h.
Referenced by getHPrec(), and ~LinearEigsolvOperators().
Epetra_CrsMatrix* LinearEigsolvOperators::K [private] |
Definition at line 100 of file LinearEigsolvOperators.h.
Referenced by buildPreconditioner(), and ~LinearEigsolvOperators().
Epetra_FECrsMatrix* LinearEigsolvOperators::M [private] |
Definition at line 99 of file LinearEigsolvOperators.h.
Referenced by buildPreconditioner(), getM(), matrixAssembly(), and ~LinearEigsolvOperators().
FemaxMesh& LinearEigsolvOperators::mesh_mixed_ [private] |
Definition at line 96 of file LinearEigsolvOperators.h.
Teuchos::ParameterList& LinearEigsolvOperators::params_ [private] |
Parameter list
Definition at line 117 of file LinearEigsolvOperators.h.
Referenced by buildPreconditioner(), getHPrec(), getHSolver(), and matrixAssembly().
Epetra_Operator* LinearEigsolvOperators::Prec [private] |
Definition at line 104 of file LinearEigsolvOperators.h.
Referenced by buildPreconditioner(), getAsigmaPrec(), and ~LinearEigsolvOperators().
Epetra_FECrsMatrix* LinearEigsolvOperators::Y [private] |
Definition at line 102 of file LinearEigsolvOperators.h.
Referenced by buildPreconditioner(), getY(), matrixAssembly(), and ~LinearEigsolvOperators().