#include <LOCA_EigenvalueSort_Strategies.H>
Inheritance diagram for LOCA::EigenvalueSort::AbstractStrategy:
Public Member Functions | |
| AbstractStrategy () | |
| Constructor. | |
| virtual | ~AbstractStrategy () |
| Destructor. | |
| virtual NOX::Abstract::Group::ReturnType | sort (int n, double *evals, std::vector< int > *perm=NULL) const =0 |
| Sort real eigenvalues optionally returning a permutation vector. | |
| virtual NOX::Abstract::Group::ReturnType | sort (int n, double *r_evals, double *i_evals=NULL, std::vector< int > *perm=NULL) const =0 |
| Sort complex eigenvalues optionally returning a permutation vector. | |
AbstractStrategy defines an abstract interface for sorting eigenvalues. It is used by LOCA::Eigensolver strategies to ensure the desired eigenvalues are printed/saved.
The interface defines two pure virtual methods, sort(), to sort the eigenvalues, optionally returning a permutation vector determining how th eigenvalues were sorted. There is one version for real-only eigenvalues and one version for complex. Derived classes should implement these methods for a particular sorting strategy. Constructors for derived classes should be of the form:
class Derived : public AbstractStrategy { public: Derived( const Teuchos::RefCountPtr<LOCA::GlobalData>& global_data, const Teuchos::RefCountPtr<Teuchos::ParameterList>& eigenParams); ... };
where global_data is the LOCA global data object and eigenParams is the eigensolver parameter list (see LOCA::Eigensolver::AbstractStrategy). In addition to any parameters for the chosen sorting method, this list should contain the parameter "Sorting Order" giving the name of the sorting strategy.
This class and its children follow the Strategy pattern as defined in Erich Gamma, et al. "Design Patterns: Elements of Reusable Object-Oriented Software." Addison Wesley, Boston, MA, 1995.
|
||||||||||||||||||||
|
Sort complex eigenvalues optionally returning a permutation vector.
Implemented in LOCA::EigenvalueSort::LargestMagnitude, LOCA::EigenvalueSort::SmallestMagnitude, LOCA::EigenvalueSort::LargestReal, LOCA::EigenvalueSort::SmallestReal, LOCA::EigenvalueSort::LargestImaginary, LOCA::EigenvalueSort::SmallestImaginary, and LOCA::EigenvalueSort::LargestRealInverseCayley. |
|
||||||||||||||||
|
Sort real eigenvalues optionally returning a permutation vector.
Implemented in LOCA::EigenvalueSort::LargestMagnitude, LOCA::EigenvalueSort::SmallestMagnitude, LOCA::EigenvalueSort::LargestReal, LOCA::EigenvalueSort::SmallestReal, LOCA::EigenvalueSort::LargestImaginary, LOCA::EigenvalueSort::SmallestImaginary, and LOCA::EigenvalueSort::LargestRealInverseCayley. |
1.3.9.1