|
NOX Development
|
This class computes the solution to 
#include <LOCA_SingularJacobianSolve_NicDay.H>


Public Member Functions | |
| NicDay (Teuchos::ParameterList ¶ms) | |
| Constructor. | |
| NicDay (const NicDay &source) | |
| Copy constructor. | |
| virtual | ~NicDay () |
| Destructor. | |
| virtual LOCA::SingularJacobianSolve::Generic * | clone () const |
| Clone function. | |
| virtual LOCA::SingularJacobianSolve::Generic & | operator= (const LOCA::SingularJacobianSolve::Generic &source) |
| Assignment operator. | |
| virtual NicDay & | operator= (const NicDay &source) |
| Assignment operator. | |
| virtual NOX::Abstract::Group::ReturnType | reset (Teuchos::ParameterList ¶ms) |
| Reset parameters. | |
| virtual NOX::Abstract::Group::ReturnType | compute (Teuchos::ParameterList ¶ms, LOCA::Continuation::AbstractGroup &grp, const NOX::Abstract::Vector &input, const NOX::Abstract::Vector &approxNullVec, const NOX::Abstract::Vector &jacApproxNullVec, NOX::Abstract::Vector &result) |
| Computes the solution as described above. | |
| virtual NOX::Abstract::Group::ReturnType | computeMulti (Teuchos::ParameterList ¶ms, LOCA::Continuation::AbstractGroup &grp, const NOX::Abstract::Vector *const *inputs, const NOX::Abstract::Vector &approxNullVec, const NOX::Abstract::Vector &jacApproxNullVec, NOX::Abstract::Vector **results, int nVecs) |
| Computes solution for multiple RHS. | |
| Public Member Functions inherited from LOCA::SingularJacobianSolve::Generic | |
| Generic () | |
| Constructor. | |
| Generic (const Generic &source) | |
| Copy constructor. | |
| virtual | ~Generic () |
| Destructor. | |
This class computes the solution to 
This singular solve method is a modification of the deflation idea implemented in LOCA::SingularJacobianSolve::Nic where deflation of the right hand side is used to improve the conditioning of the linear system. Typically a solution to 




![\[ \begin{aligned}
&\tilde{b} = b - \frac{b^T J v}{v^T J^T J v} Jv \\
&\text{Solve}\; J\tilde{x} = \tilde{b} \\
&x = \tilde{x} + \frac{b^T J v}{v^T J^T J v} v
\end{aligned}
\]](form_625.png)
The solve 
This algorithm is selected by setting the "Method" parameter of the "Singular Solve" sublist of the NOX linear solver parameter list to "Nic-Day". The idea for this algorithm is taken from: R. A. Nicolaides, "Deflation of Conjugate Gradients With Applications to Boundary Value Problems," SIAM J. Numer. Anal., 24(2), 1987.
|
virtual |
|
virtual |
Computes the solution as described above.
Implements LOCA::SingularJacobianSolve::Generic.
References LOCA::ErrorCheck::checkReturnType(), NOX::Abstract::Vector::clone(), NOX::DeepCopy, NOX::Abstract::Vector::innerProduct(), and NOX::Abstract::Vector::update().
|
virtual |
Computes solution for multiple RHS.
Implements LOCA::SingularJacobianSolve::Generic.
References NOX::Abstract::Vector::clone(), LOCA::ErrorCheck::combineAndCheckReturnTypes(), NOX::DeepCopy, NOX::Abstract::Vector::innerProduct(), NOX::Abstract::Group::Ok, and NOX::Abstract::Vector::update().
|
virtual |
Assignment operator.
Implements LOCA::SingularJacobianSolve::Generic.
References operator=().
Referenced by operator=().
|
virtual |
Reset parameters.
There are no additional parameters for the NicDay calculation.
Implements LOCA::SingularJacobianSolve::Generic.
References NOX::Abstract::Group::Ok.
Referenced by NicDay().