NOX Development
|
This class computes the solution to
#include <LOCA_SingularJacobianSolve_Nic.H>
Public Member Functions | |
Nic (Teuchos::ParameterList ¶ms) | |
Constructor. | |
Nic (const Nic &source) | |
Copy constructor. | |
virtual | ~Nic () |
Destructor. | |
virtual LOCA::SingularJacobianSolve::Generic * | clone () const |
Clone function. | |
virtual LOCA::SingularJacobianSolve::Generic & | operator= (const LOCA::SingularJacobianSolve::Generic &source) |
Assignment operator. | |
virtual Nic & | operator= (const Nic &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. | |
![]() | |
Generic () | |
Constructor. | |
Generic (const Generic &source) | |
Copy constructor. | |
virtual | ~Generic () |
Destructor. | |
virtual Generic * | clone () const =0 |
Clone function. | |
virtual Generic & | operator= (const Generic &source)=0 |
Assignment operator. | |
virtual NOX::Abstract::Group::ReturnType | reset (Teuchos::ParameterList ¶ms)=0 |
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)=0 |
Compute solution to singular system. | |
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)=0 |
Compute solution to singular system with multiple RHS. | |
This class computes the solution to
The idea here is to use deflation of the right hand side to improve the conditioning of the linear system. Typically a solution to
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". 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 |
Clone function.
Implements LOCA::SingularJacobianSolve::Generic.
|
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.
|
virtual |
Reset parameters.
There are no additional parameters for the Nic calculation.
Implements LOCA::SingularJacobianSolve::Generic.
References NOX::Abstract::Group::Ok.
Referenced by Nic().