NOX  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | Protected Attributes | List of all members
LOCA::Thyra::Group Class Reference

Extension of the NOX::Thyra::Group to LOCA. More...

#include <LOCA_Thyra_Group.H>

Inheritance diagram for LOCA::Thyra::Group:
Inheritance graph
[legend]
Collaboration diagram for LOCA::Thyra::Group:
Collaboration graph
[legend]

Public Member Functions

 Group (const Teuchos::RCP< LOCA::GlobalData > &global_data, const NOX::Thyra::Vector &initial_guess, const Teuchos::RCP< ::Thyra::ModelEvaluator< double > > &model, const LOCA::ParameterVector &p, int p_index, bool implement_dfdp=false, const Teuchos::RCP< const ::Thyra::VectorBase< double > > &weight_vector=Teuchos::null)
 Constructor.
 
 Group (const Group &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor. If type is DeepCopy, takes ownership of valid shared Jacobian.
 
virtual ~Group ()
 Destructor.
 
virtual Groupoperator= (const Group &source)
 Assignment operator.
 
void setSaveDataStrategy (const Teuchos::RCP< LOCA::Thyra::SaveDataStrategy > &s)
 Set strategy object for saving continuation data.
 
Overloaded NOX::Thyra::Group methods.
virtual NOX::Abstract::Groupoperator= (const NOX::Abstract::Group &source)
 Assignment operator.
 
virtual NOX::Abstract::Groupoperator= (const NOX::Thyra::Group &source)
 Assignment operator.
 
virtual Teuchos::RCP
< NOX::Abstract::Group
clone (NOX::CopyType type=NOX::DeepCopy) const
 Cloning function.
 
virtual
NOX::Abstract::Group::ReturnType 
computeF ()
 Overloaded computeF()
 
virtual
NOX::Abstract::Group::ReturnType 
computeJacobian ()
 Overloaded computeJacobian()
 
Implementation of LOCA::MultiContinuation::AbstractGroup virtual methods.
virtual void copy (const NOX::Abstract::Group &source)
 Copy.
 
virtual void setParams (const ParameterVector &p)
 Set the parameters.
 
virtual void setParam (int paramID, double val)
 Set parameter indexed by paramID.
 
virtual void setParam (std::string paramID, double val)
 Set parameter indexed by paramID.
 
const LOCA::ParameterVectorgetParams () const
 Return a const reference to the ParameterVector owned by the group.
 
virtual double getParam (int paramID) const
 Return copy of parameter indexed by paramID.
 
virtual double getParam (std::string paramID) const
 Return copy of parameter indexed by paramID.
 
virtual
NOX::Abstract::Group::ReturnType 
computeDfDpMulti (const std::vector< int > &paramIDs, NOX::Abstract::MultiVector &dfdp, bool isValidF)
 
virtual void preProcessContinuationStep (LOCA::Abstract::Iterator::StepStatus stepStatus)
 Perform any preprocessing before a continuation step starts.
 
virtual void postProcessContinuationStep (LOCA::Abstract::Iterator::StepStatus stepStatus)
 Perform any postprocessing after a continuation step finishes.
 
virtual void projectToDraw (const NOX::Abstract::Vector &x, double *px) const
 Projects solution to a few scalars for multiparameter continuation.
 
virtual int projectToDrawDimension () const
 Returns the dimension of the project to draw array.
 
virtual double computeScaledDotProduct (const NOX::Abstract::Vector &a, const NOX::Abstract::Vector &b) const
 Compute a scaled dot product. More...
 
virtual void printSolution (const double conParam) const
 Call the user interface print() routine, solution vector.
 
virtual void printSolution (const NOX::Abstract::Vector &x, const double conParam) const
 Call the user interface print() routine, any vector.
 
virtual void scaleVector (NOX::Abstract::Vector &x) const
 Scales a vector using scaling vector. More...
 
Implementation of LOCA::TimeDependent::AbstractGroup virtual methods.
virtual
NOX::Abstract::Group::ReturnType 
computeShiftedMatrix (double alpha, double beta)
 Compute the shifted matrix.
 
virtual
NOX::Abstract::Group::ReturnType 
applyShiftedMatrix (const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const
 Multiply the shifted matrix by a vector.
 
virtual
NOX::Abstract::Group::ReturnType 
applyShiftedMatrixMultiVector (const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const
 Multiply the shifted matrix by a multi-vector.
 
virtual
NOX::Abstract::Group::ReturnType 
applyShiftedMatrixInverseMultiVector (Teuchos::ParameterList &params, const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const
 Apply the inverse of the shifted matrix by a multi-vector, as needed by the shift-and-invert and generalized Cayley transformations.
 
- Public Member Functions inherited from NOX::Thyra::Group
 Group (const NOX::Thyra::Vector &initialGuess, const Teuchos::RCP< const ::Thyra::ModelEvaluator< double > > &model, const Teuchos::RCP< const ::Thyra::VectorBase< double > > &weightVector=Teuchos::null, const Teuchos::RCP< const ::Thyra::VectorBase< double > > &rightWeightVector=Teuchos::null, const Teuchos::RCP<::Thyra::VectorBase< double > > &inv_rightWeightVector=Teuchos::null, const bool rightScalingFirst=false)
 The default constructor that uses the linear solver from the ModelEvaluator. More...
 
 Group (const NOX::Thyra::Vector &initialGuess, const Teuchos::RCP< const ::Thyra::ModelEvaluator< double > > &model, const Teuchos::RCP< ::Thyra::LinearOpBase< double > > &linearOp, const Teuchos::RCP< const ::Thyra::LinearOpWithSolveFactoryBase< double > > &lowsFactory, const Teuchos::RCP< ::Thyra::PreconditionerBase< double > > &precOp, const Teuchos::RCP< ::Thyra::PreconditionerFactoryBase< double > > &precFactory, const Teuchos::RCP< const ::Thyra::VectorBase< double > > &weightVector=Teuchos::null, const Teuchos::RCP< const ::Thyra::VectorBase< double > > &rightWeightVector=Teuchos::null, const Teuchos::RCP<::Thyra::VectorBase< double > > &inv_rightWeightVector=Teuchos::null, const bool rightScalingFirst=false, const bool updatePreconditioner=true, const bool jacobianIsEvaluated=false)
 Power user constructor that takes explicit linear solver objects to handle different combinations. More...
 
 Group (const NOX::Thyra::Group &source, NOX::CopyType type=DeepCopy)
 Copy constructor.
 
 ~Group ()
 Destructor.
 
NOX::Abstract::Groupoperator= (const NOX::Abstract::Group &source)
 Copies the source group into this group. More...
 
NOX::Abstract::Groupoperator= (const NOX::Thyra::Group &source)
 
Teuchos::RCP< const
::Thyra::VectorBase< double > > 
get_current_x () const
 
Teuchos::RCP
< ::Thyra::LinearOpBase
< double > > 
getNonconstJacobianOperator ()
 
Teuchos::RCP< const
::Thyra::LinearOpBase< double > > 
getJacobianOperator () const
 
Teuchos::RCP< const
::Thyra::LinearOpBase< double > > 
getScaledJacobianOperator () const
 
void unscaleJacobianOperator () const
 
Teuchos::RCP
< ::Thyra::LinearOpWithSolveBase
< double > > 
getNonconstJacobian ()
 
Teuchos::RCP< const
::Thyra::LinearOpWithSolveBase
< double > > 
getJacobian () const
 
Teuchos::RCP
< ::Thyra::PreconditionerBase
< double > > 
getNonconstPreconditioner ()
 
Teuchos::RCP< const
::Thyra::PreconditionerBase
< double > > 
getPreconditioner () const
 
virtual void logLastLinearSolveStats (NOX::SolverStats &stats) const
 Adds statistics from last linear solve to the SovlerStats object.
 
void print () const
 Print out the group.
 
::Thyra::ModelEvaluatorBase::InArgs
< double > & 
getNonconstInArgs ()
 
const
::Thyra::ModelEvaluatorBase::InArgs
< double > & 
getInArgs () const
 
Teuchos::RCP< const
::Thyra::ModelEvaluator
< double > > 
getModel () const
 
void setX (const NOX::Abstract::Vector &y)
 Set the solution vector x to y. More...
 
void setX (const NOX::Thyra::Vector &y)
 See above.
 
void computeX (const NOX::Abstract::Group &grp, const NOX::Abstract::Vector &d, double step)
 Compute x = grp.x + step * d. More...
 
void computeX (const NOX::Thyra::Group &grp, const NOX::Thyra::Vector &d, double step)
 See above.
 
NOX::Abstract::Group::ReturnType computeF ()
 Compute and store F(x). More...
 
NOX::Abstract::Group::ReturnType computeJacobian ()
 Compute and store Jacobian. More...
 
NOX::Abstract::Group::ReturnType computeGradient ()
 Compute and store gradient. More...
 
NOX::Abstract::Group::ReturnType computeNewton (Teuchos::ParameterList &params)
 Compute the Newton direction, using parameters for the linear solve. More...
 
NOX::Abstract::Group::ReturnType applyJacobian (const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const
 Applies Jacobian to the given input vector and puts the answer in the result. More...
 
NOX::Abstract::Group::ReturnType applyJacobian (const NOX::Thyra::Vector &input, NOX::Thyra::Vector &result) const
 
NOX::Abstract::Group::ReturnType applyJacobianMultiVector (const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const
 applyJacobian for multiple right-hand sides More...
 
NOX::Abstract::Group::ReturnType applyJacobianTranspose (const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const
 Applies Jacobian-Transpose to the given input vector and puts the answer in the result. More...
 
NOX::Abstract::Group::ReturnType applyJacobianTranspose (const NOX::Thyra::Vector &input, NOX::Thyra::Vector &result) const
 
NOX::Abstract::Group::ReturnType applyJacobianTransposeMultiVector (const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const
 applyJacobianTranspose for multiple right-hand sides More...
 
NOX::Abstract::Group::ReturnType applyJacobianInverse (Teuchos::ParameterList &params, const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const
 Applies the inverse of the Jacobian matrix to the given input vector and puts the answer in result. More...
 
NOX::Abstract::Group::ReturnType applyJacobianInverse (Teuchos::ParameterList &params, const NOX::Thyra::Vector &input, NOX::Thyra::Vector &result) const
 
NOX::Abstract::Group::ReturnType applyJacobianInverseMultiVector (Teuchos::ParameterList &params, const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const
 applyJacobianInverse for multiple right-hand sides More...
 
NOX::Abstract::Group::ReturnType applyRightPreconditioning (bool useTranspose, Teuchos::ParameterList &params, const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const
 Apply right preconditiong to the given input vector. More...
 
bool isF () const
 Return true if F is valid.
 
bool isJacobian () const
 Return true if the Jacobian is valid. More...
 
bool isGradient () const
 Return true if the gradient is valid. More...
 
bool isNewton () const
 Return true if the Newton direction is valid. More...
 
const NOX::Abstract::VectorgetX () const
 Return solution vector.
 
const NOX::Abstract::VectorgetScaledX () const
 
const NOX::Abstract::VectorgetF () const
 Return F(x)
 
double getNormF () const
 Return 2-norm of F(x). More...
 
const NOX::Abstract::VectorgetGradient () const
 Return gradient.
 
const NOX::Abstract::VectorgetNewton () const
 Return Newton direction.
 
Teuchos::RCP< const
NOX::Abstract::Vector
getXPtr () const
 Return RCP to solution vector.
 
Teuchos::RCP< const
NOX::Abstract::Vector
getFPtr () const
 Return RCP to F(x)
 
Teuchos::RCP< const
NOX::Abstract::Vector
getGradientPtr () const
 Return RCP to gradient.
 
Teuchos::RCP< const
NOX::Abstract::Vector
getNewtonPtr () const
 Return RCP to Newton direction.
 
- Public Member Functions inherited from NOX::Abstract::Group
 Group ()
 Constructor. More...
 
virtual
NOX::Abstract::Group::ReturnType 
applyRightPreconditioningMultiVector (bool useTranspose, Teuchos::ParameterList &params, const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const
 applyRightPreconditioning for multiple right-hand sides More...
 
virtual
NOX::Abstract::Group::ReturnType 
getNormLastLinearSolveResidual (double &residual) const
 Return the norm of the last linear solve residual as the result of either a call to computeNewton() or applyJacobianInverse(). More...
 
- Public Member Functions inherited from LOCA::Abstract::Group
 Group (const Teuchos::RCP< LOCA::GlobalData > &global_data)
 Constructor.
 
 Group (const Teuchos::RCP< LOCA::GlobalData > &global_data, const Teuchos::RCP< LOCA::DerivUtils > &deriv)
 Constructor.
 
 Group (const Group &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 
virtual
NOX::Abstract::Group::ReturnType 
augmentJacobianForHomotopy (double a, double b)
 Replace Jacobian $J$ by $aJ+bI$ where $I$ is the identity matrix and $p$ is a scalar. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeSecondShiftedMatrix (double alpha, double beta)
 Compute the second shifted matrix. Can avoid recomputing if two are stored. More...
 
virtual
NOX::Abstract::Group::ReturnType 
applySecondShiftedMatrix (const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const
 Multiply the shifted matrix by a vector. More...
 
virtual
NOX::Abstract::Group::ReturnType 
applySecondShiftedMatrixMultiVector (const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const
 Multiply the shifted matrix by a multi-vector. More...
 
virtual bool isComplex () const
 Is $J+i\omega B$ valid. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeComplex (double frequency)
 Compute $J+i\omega B$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
applyComplex (const NOX::Abstract::Vector &input_real, const NOX::Abstract::Vector &input_imag, NOX::Abstract::Vector &result_real, NOX::Abstract::Vector &result_imag) const
 Compute $(J+i\omega B)(y+iz)$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
applyComplexMultiVector (const NOX::Abstract::MultiVector &input_real, const NOX::Abstract::MultiVector &input_imag, NOX::Abstract::MultiVector &result_real, NOX::Abstract::MultiVector &result_imag) const
 Compute $(J+i\omega B)(y+iz)$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
applyComplexInverseMultiVector (Teuchos::ParameterList &params, const NOX::Abstract::MultiVector &input_real, const NOX::Abstract::MultiVector &input_imag, NOX::Abstract::MultiVector &result_real, NOX::Abstract::MultiVector &result_imag) const
 Solve $(J+i\omega B)(y+iz) = a+ib$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
applyComplexTranspose (const NOX::Abstract::Vector &input_real, const NOX::Abstract::Vector &input_imag, NOX::Abstract::Vector &result_real, NOX::Abstract::Vector &result_imag) const
 
virtual
NOX::Abstract::Group::ReturnType 
applyComplexTransposeMultiVector (const NOX::Abstract::MultiVector &input_real, const NOX::Abstract::MultiVector &input_imag, NOX::Abstract::MultiVector &result_real, NOX::Abstract::MultiVector &result_imag) const
 
virtual
NOX::Abstract::Group::ReturnType 
applyComplexTransposeInverseMultiVector (Teuchos::ParameterList &params, const NOX::Abstract::MultiVector &input_real, const NOX::Abstract::MultiVector &input_imag, NOX::Abstract::MultiVector &result_real, NOX::Abstract::MultiVector &result_imag) const
 Solve $(J+i\omega B)^H (x + iy) = a+ib$.
 
virtual void setParamsMulti (const std::vector< int > &paramIDs, const NOX::Abstract::MultiVector::DenseMatrix &vals)
 Set parameters indexed by (integer) paramIDs.
 
virtual void notifyCompletedStep ()
 
virtual double computeFreeEnergy ()
 Computes the free energy at the current solution and parameter values.
 
- Public Member Functions inherited from LOCA::Homotopy::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
virtual ~AbstractGroup ()
 Destructor.
 
- Public Member Functions inherited from LOCA::MultiContinuation::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
- Public Member Functions inherited from LOCA::TurningPoint::MinimallyAugmented::FiniteDifferenceGroup
 FiniteDifferenceGroup ()
 Constructor.
 
 FiniteDifferenceGroup (const FiniteDifferenceGroup &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 
virtual ~FiniteDifferenceGroup ()
 Destructor.
 
virtual
NOX::Abstract::Group::ReturnType 
computeDwtJnDp (const std::vector< int > &paramIDs, const NOX::Abstract::Vector &w, const NOX::Abstract::Vector &nullVector, NOX::Abstract::MultiVector::DenseMatrix &result, bool isValid)
 Computes the derivative $\partial w^TJn/\partial p$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeDwtJDp (const std::vector< int > &paramIDs, const NOX::Abstract::Vector &w, NOX::Abstract::MultiVector &result, bool isValid)
 Computes the derivative $\partial w^TJ/\partial p$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeDwtJnDx (const NOX::Abstract::Vector &w, const NOX::Abstract::Vector &nullVector, NOX::Abstract::Vector &result)
 Computes the derivative $\frac{\partial w^TJn}{\partial x}$. More...
 
- Public Member Functions inherited from LOCA::TurningPoint::MinimallyAugmented::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
- Public Member Functions inherited from LOCA::TurningPoint::MooreSpence::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
- Public Member Functions inherited from LOCA::TurningPoint::MooreSpence::FiniteDifferenceGroup
 FiniteDifferenceGroup ()
 Constructor.
 
 FiniteDifferenceGroup (const FiniteDifferenceGroup &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 
virtual
NOX::Abstract::Group::ReturnType 
computeDJnDpMulti (const std::vector< int > &paramIDs, const NOX::Abstract::Vector &nullVector, NOX::Abstract::MultiVector &result, bool isValid)
 Computes the derivative $\partial Jn/\partial p$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeDJnDxaMulti (const NOX::Abstract::Vector &nullVector, const NOX::Abstract::MultiVector &aVector, NOX::Abstract::MultiVector &result)
 Computes the directional derivative $\frac{\partial Jn}{\partial x} a$ for the given direction $a$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeDJnDxaMulti (const NOX::Abstract::Vector &nullVector, const NOX::Abstract::Vector &JnVector, const NOX::Abstract::MultiVector &aVector, NOX::Abstract::MultiVector &result)
 Computes the directional derivative $\frac{\partial Jn}{\partial x} a$ for the given direction $a$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeDwtJnDxMulti (const NOX::Abstract::MultiVector &w, const NOX::Abstract::Vector &nullVector, NOX::Abstract::MultiVector &result)
 Computes the derivative $\frac{\partial w^TJn}{\partial x}$. More...
 
- Public Member Functions inherited from LOCA::MultiContinuation::FiniteDifferenceGroup
 FiniteDifferenceGroup ()
 Constructor.
 
 FiniteDifferenceGroup (const FiniteDifferenceGroup &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 
virtual void setDerivUtils (const Teuchos::RCP< LOCA::DerivUtils > &deriv)
 Set the LOCA::DerivUtils object.
 
- Public Member Functions inherited from LOCA::Pitchfork::MinimallyAugmented::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
virtual ~AbstractGroup ()
 Destructor.
 
- Public Member Functions inherited from LOCA::Pitchfork::MooreSpence::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
virtual double innerProduct (const NOX::Abstract::Vector &a, const NOX::Abstract::Vector &b) const
 Compute the inner product of a and b. More...
 
virtual void innerProduct (const NOX::Abstract::MultiVector &a, const NOX::Abstract::MultiVector &b, NOX::Abstract::MultiVector::DenseMatrix &c) const
 Compute the inner product of a and b. More...
 
- Public Member Functions inherited from LOCA::Hopf::MinimallyAugmented::FiniteDifferenceGroup
 FiniteDifferenceGroup ()
 Constructor.
 
 FiniteDifferenceGroup (const FiniteDifferenceGroup &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 
virtual ~FiniteDifferenceGroup ()
 Destructor.
 
virtual
NOX::Abstract::Group::ReturnType 
computeDwtCeDp (const std::vector< int > &paramIDs, const NOX::Abstract::Vector &w1, const NOX::Abstract::Vector &w2, const NOX::Abstract::Vector &y, const NOX::Abstract::Vector &x, double omega, NOX::Abstract::MultiVector::DenseMatrix &result_real, NOX::Abstract::MultiVector::DenseMatrix &result_imag, bool isValid)
 Computes the derivative $\partial w^TCe/\partial p$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeDwtCeDx (const NOX::Abstract::Vector &w1, const NOX::Abstract::Vector &w2, const NOX::Abstract::Vector &y, const NOX::Abstract::Vector &z, double omega, NOX::Abstract::Vector &result_real, NOX::Abstract::Vector &result_imag)
 Computes the derivative $\frac{\partial w^TCe}{\partial x}$. More...
 
- Public Member Functions inherited from LOCA::Hopf::MinimallyAugmented::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
virtual ~AbstractGroup ()
 Destructor.
 
- Public Member Functions inherited from LOCA::Hopf::MooreSpence::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
- Public Member Functions inherited from LOCA::TimeDependent::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
- Public Member Functions inherited from LOCA::Hopf::MooreSpence::FiniteDifferenceGroup
 FiniteDifferenceGroup ()
 Constructor.
 
 FiniteDifferenceGroup (const FiniteDifferenceGroup &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 
virtual
NOX::Abstract::Group::ReturnType 
computeDCeDp (const std::vector< int > &paramIDs, const NOX::Abstract::Vector &yVector, const NOX::Abstract::Vector &zVector, double w, NOX::Abstract::MultiVector &result_real, NOX::Abstract::MultiVector &result_imag, bool isValid)
 Computes the derivative $\frac{\partial (J+i\omega B)(y+iz)}{\partial p}$ where $p$ is the parameter indexed by paramIDs. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeDCeDxa (const NOX::Abstract::Vector &yVector, const NOX::Abstract::Vector &zVector, double w, const NOX::Abstract::MultiVector &aVector, NOX::Abstract::MultiVector &result_real, NOX::Abstract::MultiVector &result_imag)
 Computes the directional derivative $\frac{\partial (J+i\omega B)(y+iz)}{\partial x} a$ for the given direction $a$. More...
 
virtual
NOX::Abstract::Group::ReturnType 
computeDCeDxa (const NOX::Abstract::Vector &yVector, const NOX::Abstract::Vector &zVector, double w, const NOX::Abstract::MultiVector &aVector, const NOX::Abstract::Vector &Ce_real, const NOX::Abstract::Vector &Ce_imag, NOX::Abstract::MultiVector &result_real, NOX::Abstract::MultiVector &result_imag)
 Computes the directional derivative $\frac{\partial (J+i\omega B)(y+iz)}{\partial x} a$ for the given direction $a$. The arguments Ce_real and Ce_imag hold the real and imaginary components of $(J+i\omega B)(y+iz)$. More...
 
- Public Member Functions inherited from LOCA::PhaseTransition::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
virtual ~AbstractGroup ()
 Destructor.
 

Protected Attributes

Teuchos::RCP< LOCA::GlobalDataglobalData
 Global data.
 
LOCA::ParameterVector params
 Parameter vector.
 
int param_index
 Parameter index in Thyra::ModelEvaluator.
 
Teuchos::RCP< const
::Thyra::VectorBase< double > > 
param_thyra_vec
 Pointer to Thyra vector storing parameters.
 
Teuchos::RCP< const
::Thyra::VectorBase< double > > 
x_dot_vec
 Pointer to x_dot vector of zeros.
 
Teuchos::RCP
< LOCA::Thyra::SaveDataStrategy
saveDataStrategy
 Strategy object for saving continuation data.
 
bool implement_dfdp
 Whether we should implement df/dp, or use DerivUtils.
 
Teuchos::RCP< const
::Thyra::VectorBase< double > > 
weight_vec_
 Optional weighting vector for function scaling. More...
 
- Protected Attributes inherited from NOX::Thyra::Group
Teuchos::RCP< const
::Thyra::ModelEvaluator
< double > > 
model_
 Problem interface.
 
Teuchos::RCP< NOX::Thyra::Vectorx_vec_
 Solution vector.
 
Teuchos::RCP< NOX::Thyra::Vectorf_vec_
 Residual vector.
 
Teuchos::RCP< NOX::Thyra::Vectornewton_vec_
 Newton direction vector.
 
Teuchos::RCP< NOX::Thyra::Vectorgradient_vec_
 Gradient direction vector.
 
Teuchos::RCP
< NOX::SharedObject
< ::Thyra::LinearOpWithSolveBase
< double >, NOX::Thyra::Group > > 
shared_jacobian_
 Shared Jacobian operator with solve.
 
Teuchos::RCP
< ::Thyra::LinearOpBase
< double > > 
lop_
 Jacobian operator.
 
Teuchos::RCP< const
::Thyra::LinearOpWithSolveFactoryBase
< double > > 
lows_factory_
 Thyra LOWS factory for building Jacobians.
 
Teuchos::RCP< const
::Thyra::DefaultLinearOpSource
< double > > 
losb_
 Source base needed to create preconditioner.
 
Teuchos::RCP
< ::Thyra::PreconditionerBase
< double > > 
prec_
 Preconditioner for Jacobian.
 
Teuchos::RCP
< ::Thyra::PreconditionerFactoryBase
< double > > 
prec_factory_
 Preconditioner factory.
 
mutable::Thyra::ModelEvaluatorBase::InArgs
< double > 
in_args_
 Residual InArgs.
 
mutable::Thyra::ModelEvaluatorBase::OutArgs
< double > 
out_args_
 Residual OutArgs.
 
Teuchos::RCP< const
::Thyra::VectorBase< double > > 
weight_vec_
 Optional wieghting vector for function scaling. NOX assumes that this vector can be updated in between nonlinear iterations. More...
 
Teuchos::RCP< const
::Thyra::VectorBase< double > > 
right_weight_vec_
 Optional wieghting vector for solution (right) scaling.
 
Teuchos::RCP
< ::Thyra::VectorBase< double > > 
inv_weight_vec_
 Inverse of weight vector used to unscale function (left) scaling. NOX assumes that this vector can be updated in between nonlinear iterations.
 
Teuchos::RCP
< ::Thyra::VectorBase< double > > 
inv_right_weight_vec_
 Inverse of weight vector used to unscale solution (right) scaling.
 
Teuchos::RCP< NOX::Thyra::Vectorscaled_x_vec_
 Scaled solution vector scaled by the.
 
bool rightScalingFirst_
 Do right scaling before left scaling?
 
bool updatePreconditioner_
 If set to true, the preconditioner matrix values will be automatically updated via precFactory or ModelEvalautor. If set to false, the user must manually handle updating the preconditioner.
 
NOX::Abstract::Group::ReturnType last_linear_solve_status_
 The status of the last linear solve performed.
 
int last_linear_solve_num_iters_
 Number of iterations for last linear solve performed.
 
double last_linear_solve_achieved_tol_
 The tolerance achieved by the last linear solver.
 
bool is_valid_f_
 
bool is_valid_jacobian_
 
bool is_valid_newton_dir_
 
bool is_valid_gradient_dir_
 
bool is_valid_lows_
 
- Protected Attributes inherited from LOCA::Abstract::Group
Teuchos::RCP< LOCA::GlobalDataglobalData
 Global data.
 
- Protected Attributes inherited from LOCA::MultiContinuation::FiniteDifferenceGroup
Teuchos::RCP< DerivUtilsderivPtr
 Pointer to current DerivUtils derivative computation object.
 

Additional Inherited Members

- Public Types inherited from NOX::Abstract::Group
enum  ReturnType {
  Ok, NotDefined, BadDependency, NotConverged,
  Failed
}
 The computation of, say, the Newton direction in computeNewton() may fail in many different ways, so we have included a variety of return codes to describe the failures. Of course, we also have a code for success. More...
 
- Protected Member Functions inherited from NOX::Thyra::Group
void resetIsValidFlags ()
 resets the isValid flags to false
 
NOX::Abstract::Group::ReturnType applyJacobianInverseMultiVector (Teuchos::ParameterList &p, const ::Thyra::MultiVectorBase< double > &input,::Thyra::MultiVectorBase< double > &result) const
 Apply Jacobian inverse using Thyra objects.
 
::Thyra::ESolveMeasureNormType getThyraNormType (const std::string &name) const
 
void updateLOWS () const
 Finalizes LOWS to be a valid solver for the Jacobian.
 
void scaleResidualAndJacobian () const
 
void unscaleResidualAndJacobian () const
 
void computeScaledSolution ()
 

Detailed Description

Extension of the NOX::Thyra::Group to LOCA.

Member Function Documentation

NOX::Abstract::Group::ReturnType LOCA::Thyra::Group::computeDfDpMulti ( const std::vector< int > &  paramIDs,
NOX::Abstract::MultiVector dfdp,
bool  isValidF 
)
virtual
double LOCA::Thyra::Group::computeScaledDotProduct ( const NOX::Abstract::Vector a,
const NOX::Abstract::Vector b 
) const
virtual

Compute a scaled dot product.

The implementation here uses the standard dot product divided by the length of the vectors.

Reimplemented from LOCA::MultiContinuation::AbstractGroup.

References NOX::Abstract::Vector::innerProduct(), and NOX::Abstract::Vector::length().

void LOCA::Thyra::Group::scaleVector ( NOX::Abstract::Vector x) const
virtual

Scales a vector using scaling vector.

The implementation here rescales the vector by the square root of its length.

Reimplemented from LOCA::MultiContinuation::AbstractGroup.

References NOX::Abstract::Vector::length(), and NOX::Abstract::Vector::scale().

Member Data Documentation

Teuchos::RCP<const ::Thyra::VectorBase<double> > LOCA::Thyra::Group::weight_vec_
protected

Optional weighting vector for function scaling.

This is pulled out of the initial guess vector


The documentation for this class was generated from the following files: