|
NOX Development
|
Moore-Spence Hopf solver strategy based on "Salinger" bordering. This is the classic 5-solve Hopf bordering method. More...
#include <LOCA_Hopf_MooreSpence_SalingerBordering.H>


Public Member Functions | |
| SalingerBordering (const Teuchos::RCP< LOCA::GlobalData > &global_data, const Teuchos::RCP< LOCA::Parameter::SublistParser > &topParams, const Teuchos::RCP< Teuchos::ParameterList > &solverParams) | |
| Constructor. | |
| virtual | ~SalingerBordering () |
| Destructor. | |
| virtual void | setBlocks (const Teuchos::RCP< LOCA::Hopf::MooreSpence::AbstractGroup > &group, const Teuchos::RCP< LOCA::Hopf::MooreSpence::ExtendedGroup > &hopfGroup, const Teuchos::RCP< const NOX::Abstract::Vector > &yVector, const Teuchos::RCP< const NOX::Abstract::Vector > &zVector, const Teuchos::RCP< const NOX::Abstract::Vector > &CeRealVector, const Teuchos::RCP< const NOX::Abstract::Vector > &CeImagVector, const Teuchos::RCP< const NOX::Abstract::Vector > &dfdp, const Teuchos::RCP< const NOX::Abstract::Vector > &dCedpReal, const Teuchos::RCP< const NOX::Abstract::Vector > &dCedpImag, const Teuchos::RCP< const NOX::Abstract::Vector > &ByVector, const Teuchos::RCP< const NOX::Abstract::Vector > &mBzVector, double w) |
| Set blocks in extended linear system. | |
| virtual NOX::Abstract::Group::ReturnType | solve (Teuchos::ParameterList ¶ms, const LOCA::Hopf::MooreSpence::ExtendedMultiVector &input, LOCA::Hopf::MooreSpence::ExtendedMultiVector &result) const |
| Solves the extended system as defined above. | |
Public Member Functions inherited from LOCA::Hopf::MooreSpence::SolverStrategy | |
| SolverStrategy () | |
| Constructor. | |
| virtual | ~SolverStrategy () |
| Destructor. | |
Protected Member Functions | |
| NOX::Abstract::Group::ReturnType | solveContiguous (Teuchos::ParameterList ¶ms, const NOX::Abstract::MultiVector &input_x, const NOX::Abstract::MultiVector &input_y, const NOX::Abstract::MultiVector &input_z, const NOX::Abstract::MultiVector::DenseMatrix &input_w, const NOX::Abstract::MultiVector::DenseMatrix &input_p, NOX::Abstract::MultiVector &result_x, NOX::Abstract::MultiVector &result_y, NOX::Abstract::MultiVector &result_z, NOX::Abstract::MultiVector::DenseMatrix &result_w, NOX::Abstract::MultiVector::DenseMatrix &result_p) const |
| Solves equations with contiguous arguments. | |
Protected Attributes | |
| Teuchos::RCP< LOCA::GlobalData > | globalData |
| Global data object. | |
| Teuchos::RCP< Teuchos::ParameterList > | solverParams |
| Solver parameters. | |
| Teuchos::RCP< LOCA::Hopf::MooreSpence::AbstractGroup > | group |
| Underlying group. | |
| Teuchos::RCP< LOCA::Hopf::MooreSpence::ExtendedGroup > | hopfGroup |
| Hopf group. | |
| Teuchos::RCP< const NOX::Abstract::Vector > | yVector |
| Real component of eigenvector. | |
| Teuchos::RCP< const NOX::Abstract::Vector > | zVector |
| Imaginary component of eigenvector. | |
| Teuchos::RCP< const NOX::Abstract::Vector > | CeRealVector |
| Jy-wBz vector. | |
| Teuchos::RCP< const NOX::Abstract::Vector > | CeImagVector |
| Jz+wBy vector. | |
| Teuchos::RCP< const NOX::Abstract::Vector > | dfdp |
| df/dp vector | |
| Teuchos::RCP< const NOX::Abstract::Vector > | dCedpReal |
| d(Jy-wBz)/dp vector | |
| Teuchos::RCP< const NOX::Abstract::Vector > | dCedpImag |
| d(Jz+wBy)/dp vector | |
| Teuchos::RCP< const NOX::Abstract::Vector > | ByVector |
| By vector. | |
| Teuchos::RCP< const NOX::Abstract::Vector > | minusBzVector |
| -Bz vector | |
| double | w |
| Frequency w. | |
Moore-Spence Hopf solver strategy based on "Salinger" bordering. This is the classic 5-solve Hopf bordering method.
This class solves the Moore-Spence Hopf Newton equations:
![\[
\begin{bmatrix}
J & 0 & 0 & 0 & f_p \\
(Jy-wBz)_x & J & -wB & -Bz & (Jy-wBz)_p \\
(Jz+wBy)_x & wB & J & By & (Jz+wBy)_p \\
0 & \phi^T & 0 & 0 & 0 \\
0 & 0 & \phi^T & 0 & 0
\end{bmatrix}
\begin{bmatrix}
X \\
Y \\
Z \\
\omega \\
\lambda
\end{bmatrix} =
\begin{bmatrix}
F \\
G \\
H \\
u \\
v
\end{bmatrix}.
\]](form_535.png)
via the following block elimination scheme:
![\[
\begin{split}
J [A \; b] &= [F \; f_p] \\
\begin{bmatrix}
J & -wB \\
wB & J
\end{bmatrix}
\begin{bmatrix}
C & e & g \\
D & f & h
\end{bmatrix} &=
\begin{bmatrix}
G - (Jy-wBz)_x A & (Jy-wBz)_p - (Jy-wBz)_x b & -Bz \\
H - (Jz+wBy)_x A & (Jz+wBy)_p - (Jy-wBz)_x b & By
\end{bmatrix} \\
\lambda &= \frac{(\phi^T h)(\phi^T C-u)-(\phi^T g)(\phi^T D-v)}
{(\phi^T h)(\phi^T e)-(\phi^T g)(\phi^T f)} \\
\omega &= \frac{\phi^T D - v - (\phi^T f)\lambda}{\phi^T h} \\
X &= A - b \lambda \\
\begin{bmatrix}
Y \\
Z
\end{bmatrix} &=
\begin{bmatrix}
C \\
D
\end{bmatrix} -
\begin{bmatrix}
e \\
f
\end{bmatrix}\lambda -
\begin{bmatrix}
g \\
h
\end{bmatrix}\omega
\end{split}
\]](form_536.png)
| LOCA::Hopf::MooreSpence::SalingerBordering::SalingerBordering | ( | const Teuchos::RCP< LOCA::GlobalData > & | global_data, |
| const Teuchos::RCP< LOCA::Parameter::SublistParser > & | topParams, | ||
| const Teuchos::RCP< Teuchos::ParameterList > & | solverParams | ||
| ) |
Constructor.
| global_data | [in] Global data object |
| topParams | [in] Parsed top-level parameter list |
| solverParams | [in] Bordered solver parameters. Currently none are referenced. |
|
virtual |
Set blocks in extended linear system.
| group | [in] Underlying group representing J |
| hopfGroup | [in] Hopf group representing the Hopf equations. |
| yVector | [in] Vector representing y |
| zVector | [in] Vector representing z |
| CeRealVector | [in] Vector representing Jy-wBz |
| CeImagVector | [in] Vector representing Jz+wBy |
| dfdp | [in] Vector representing df/dp |
| dCedpReal | [in] Vector representing d(Jy-wBz)/dp |
| dCedpImag | [in] Vector representing d(Jz+wBy)/dp |
| ByVector | [in] Vector representing By |
| mBzVector | [in] Vector representing -Bz |
| w | [in] Bifurcation frequency w |
Implements LOCA::Hopf::MooreSpence::SolverStrategy.
|
virtual |
Solves the extended system as defined above.
The params argument is the linear solver parameters.
Implements LOCA::Hopf::MooreSpence::SolverStrategy.
References LOCA::Hopf::MooreSpence::ExtendedMultiVector::getBifParams(), LOCA::Hopf::MooreSpence::ExtendedMultiVector::getFrequencies(), LOCA::Hopf::MooreSpence::ExtendedMultiVector::getImagEigenMultiVec(), LOCA::Hopf::MooreSpence::ExtendedMultiVector::getRealEigenMultiVec(), LOCA::Hopf::MooreSpence::ExtendedMultiVector::getXMultiVec(), and LOCA::Extended::MultiVector::numVectors().