LinearEigsolvOperators Class Reference

#include <LinearEigsolvOperators.h>

Inheritance diagram for LinearEigsolvOperators:

Inheritance graph
[legend]
Collaboration diagram for LinearEigsolvOperators:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 LinearEigsolvOperators (FemaxMesh &mesh_mixed, Teuchos::ParameterList &params, 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)
LinearEigsolvOperatorsoperator= (const LinearEigsolvOperators &ref)
int buildPreconditioner (double sigma)
void matrixAssembly (FemaxMesh &mesh_mixed)

Private Attributes

FemaxMeshmesh_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

Detailed Description

Definition at line 47 of file LinearEigsolvOperators.h.


Constructor & Destructor Documentation

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).

Parameters:
leo 


Member Function Documentation

int LinearEigsolvOperators::buildPreconditioner ( double  sigma  )  [private]

Build preconditioner for A-sigma*M.

Build K = A-sigma*M. Store preconditioner in Prec.

Parameters:
sigma Shift.
map_nedelec 
Returns:
Non-zero on error.

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.

Parameters:
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).

Parameters:
ref 
Returns:


Member Data Documentation

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().


The documentation for this class was generated from the following files:
Generated on Fri Oct 26 13:35:16 2007 for FEMAXX (Finite Element Maxwell Eigensolver) by  doxygen 1.4.7