Class for the adjoing problem shift invert operation. More...
#include <trilinos_eigen_solver.h>
Public Member Functions | |
AdjointProblemBasedShiftInvertOperator (Problem *const &problem_pt, LinearSolver *const &linear_solver_pt, const double &sigma=0.0) | |
void | apply (const DoubleMultiVector &x, DoubleMultiVector &y) const |
Now specify how to apply the operator. More... | |
Public Member Functions inherited from oomph::DoubleMultiVectorOperator | |
DoubleMultiVectorOperator () | |
Empty constructor. More... | |
virtual | ~DoubleMultiVectorOperator () |
virtual destructor More... | |
Private Attributes | |
Problem * | Problem_pt |
Pointer to the problem. More... | |
LinearSolver * | Linear_solver_pt |
Pointer to the linear solver used. More... | |
double | Sigma |
Storage for the shift. More... | |
CRDoubleMatrix * | M_pt |
Storage for the matrices. More... | |
CRDoubleMatrix * | AsigmaM_pt |
Class for the adjoing problem shift invert operation.
Definition at line 588 of file trilinos_eigen_solver.h.
|
inline |
Before we get into the Arnoldi loop solve the shifted matrix problem Allocated Row compressed matrices for the mass matrix and shifted main matrix
Assemble the matrices
Get the transpose of the mass and jacobian NB Only difference to ProblemBasedShiftInvertOperator
Do not report the time taken
Definition at line 605 of file trilinos_eigen_solver.h.
References AsigmaM_pt, oomph::LinearSolver::disable_doc_time(), oomph::Problem::dof_distribution_pt(), oomph::Problem::get_eigenproblem_matrices(), oomph::CRDoubleMatrix::get_matrix_transpose(), Linear_solver_pt, M_pt, and Sigma.
|
inlinevirtual |
Now specify how to apply the operator.
Solve the first vector
Premultiply by mass matrix
Create output vector
Now loop over the others and resolve
Implements oomph::DoubleMultiVectorOperator.
Definition at line 631 of file trilinos_eigen_solver.h.
References AsigmaM_pt, oomph::DistributableLinearAlgebraObject::distribution_pt(), oomph::DoubleMultiVector::doublevector(), oomph::LinearSolver::enable_resolve(), i, Linear_solver_pt, M_pt, oomph::CRDoubleMatrix::multiply(), oomph::DistributableLinearAlgebraObject::nrow_local(), oomph::DoubleMultiVector::nvector(), oomph::LinearSolver::resolve(), and oomph::LinearSolver::solve().
|
private |
Definition at line 602 of file trilinos_eigen_solver.h.
Referenced by AdjointProblemBasedShiftInvertOperator(), and apply().
|
private |
Pointer to the linear solver used.
Definition at line 596 of file trilinos_eigen_solver.h.
Referenced by AdjointProblemBasedShiftInvertOperator(), and apply().
|
private |
Storage for the matrices.
Definition at line 602 of file trilinos_eigen_solver.h.
Referenced by AdjointProblemBasedShiftInvertOperator(), and apply().
|
private |
Pointer to the problem.
Definition at line 593 of file trilinos_eigen_solver.h.
|
private |
Storage for the shift.
Definition at line 599 of file trilinos_eigen_solver.h.
Referenced by AdjointProblemBasedShiftInvertOperator().