NOX Development
Loading...
Searching...
No Matches
Public Member Functions | 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 (internally constructs nox group)
 
 Group (const Teuchos::RCP< LOCA::GlobalData > &global_data, const NOX::Thyra::Group &nox_group, const LOCA::ParameterVector &p, const std::vector< int > &p_index, bool implement_dfdp=false, const Teuchos::RCP< const ::Thyra::VectorBase< double > > &weight_vector=Teuchos::null)
 Constructor for Householder continuation where parameters are in separate param vectors.
 
 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.
 
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::Groupclone (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.
 
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.
 
- 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.
 
 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.
 
 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.
 
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
 
void setJacobianOperator (const Teuchos::RCP<::Thyra::LinearOpBase< double > > &op)
 Dangerous power user function for LOCA Householder bordered algorithm.
 
void setPreconditionerMatrix (const Teuchos::RCP< const ::Thyra::DefaultLinearOpSource< double > > &op)
 Dangerous power user function for LOCA Householder bordered algorithm. This is the Matrix M that is used to initialize a stratimikos preconditioner. NOTE: this sets the losb_ object used to update prec_!
 
void setX (const NOX::Abstract::Vector &y)
 Set the solution vector x to y.
 
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.
 
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).
 
NOX::Abstract::Group::ReturnType computeJacobian ()
 Compute and store Jacobian.
 
NOX::Abstract::Group::ReturnType computeGradient ()
 Compute and store gradient.
 
NOX::Abstract::Group::ReturnType computeNewton (Teuchos::ParameterList &params)
 Compute the Newton direction, using parameters for the linear solve.
 
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.
 
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
 
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.
 
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
 
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.
 
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
 
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.
 
bool isF () const
 Return true if F is valid.
 
bool isJacobian () const
 Return true if the Jacobian is valid.
 
bool isGradient () const
 Return true if the gradient is valid.
 
bool isNewton () const
 Return true if the Newton direction is valid.
 
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).
 
const NOX::Abstract::VectorgetGradient () const
 Return gradient.
 
const NOX::Abstract::VectorgetNewton () const
 Return Newton direction.
 
Teuchos::RCP< const NOX::Abstract::VectorgetXPtr () const
 Return RCP to solution vector.
 
Teuchos::RCP< const NOX::Abstract::VectorgetFPtr () const
 Return RCP to F(x)
 
Teuchos::RCP< const NOX::Abstract::VectorgetGradientPtr () const
 Return RCP to gradient.
 
Teuchos::RCP< const NOX::Abstract::VectorgetNewtonPtr () const
 Return RCP to Newton direction.
 
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
 
- Public Member Functions inherited from NOX::Abstract::Group
 Group ()
 Constructor.
 
virtual ~Group ()
 Destructor.
 
virtual NOX::Abstract::Groupoperator= (const NOX::Abstract::Group &source)=0
 Copies the source group into this group.
 
virtual void setX (const NOX::Abstract::Vector &y)=0
 Set the solution vector x to y.
 
virtual void computeX (const NOX::Abstract::Group &grp, const NOX::Abstract::Vector &d, double step)=0
 Compute x = grp.x + step * d.
 
virtual NOX::Abstract::Group::ReturnType computeF ()=0
 Compute and store F(x).
 
virtual NOX::Abstract::Group::ReturnType computeJacobian ()
 Compute and store Jacobian.
 
virtual NOX::Abstract::Group::ReturnType computeGradient ()
 Compute and store gradient.
 
virtual NOX::Abstract::Group::ReturnType computeNewton (Teuchos::ParameterList &params)
 Compute the Newton direction, using parameters for the linear solve.
 
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
 
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().
 
- 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 ~Group ()
 Destructor.
 
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.
 
virtual NOX::Abstract::Group::ReturnType computeSecondShiftedMatrix (double alpha, double beta)
 Compute the second shifted matrix. Can avoid recomputing if two are stored.
 
virtual NOX::Abstract::Group::ReturnType applySecondShiftedMatrix (const NOX::Abstract::Vector &input, NOX::Abstract::Vector &result) const
 Multiply the shifted matrix by a vector.
 
virtual NOX::Abstract::Group::ReturnType applySecondShiftedMatrixMultiVector (const NOX::Abstract::MultiVector &input, NOX::Abstract::MultiVector &result) const
 Multiply the shifted matrix by a multi-vector.
 
virtual bool isComplex () const
 Is $ J+i\omega B$ valid.
 
virtual NOX::Abstract::Group::ReturnType computeComplex (double frequency)
 Compute $ J+i\omega B$.
 
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)$.
 
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)$.
 
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$.
 
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.
 
virtual ~AbstractGroup ()
 Destructor.
 
- 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$.
 
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$.
 
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}$.
 
- Public Member Functions inherited from LOCA::TurningPoint::MinimallyAugmented::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
virtual ~AbstractGroup ()
 Destructor.
 
- Public Member Functions inherited from LOCA::TurningPoint::MooreSpence::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
virtual ~AbstractGroup ()
 Destructor.
 
- Public Member Functions inherited from LOCA::TurningPoint::MooreSpence::FiniteDifferenceGroup
 FiniteDifferenceGroup ()
 Constructor.
 
 FiniteDifferenceGroup (const FiniteDifferenceGroup &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 
virtual ~FiniteDifferenceGroup ()
 Destructor.
 
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$.
 
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$.
 
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$.
 
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}$.
 
- Public Member Functions inherited from LOCA::MultiContinuation::FiniteDifferenceGroup
 FiniteDifferenceGroup ()
 Constructor.
 
 FiniteDifferenceGroup (const FiniteDifferenceGroup &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 
virtual ~FiniteDifferenceGroup ()
 Destructor.
 
virtual void copy (const NOX::Abstract::Group &source)
 Copy.
 
virtual NOX::Abstract::Groupoperator= (const NOX::Abstract::Group &source)
 Assignment.
 
virtual void setDerivUtils (const Teuchos::RCP< LOCA::DerivUtils > &deriv)
 Set the LOCA::DerivUtils object.
 
virtual NOX::Abstract::Group::ReturnType computeDfDpMulti (const std::vector< int > &paramIDs, NOX::Abstract::MultiVector &dfdp, bool isValidF)
 
- 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 ~AbstractGroup ()
 Destructor.
 
virtual double innerProduct (const NOX::Abstract::Vector &a, const NOX::Abstract::Vector &b) const
 Compute the inner product of a and b.
 
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.
 
- 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$.
 
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}$.
 
- 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.
 
virtual ~AbstractGroup ()
 Destructor.
 
- Public Member Functions inherited from LOCA::TimeDependent::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
virtual ~AbstractGroup ()
 Destructor.
 
- Public Member Functions inherited from LOCA::Hopf::MooreSpence::FiniteDifferenceGroup
 FiniteDifferenceGroup ()
 Constructor.
 
 FiniteDifferenceGroup (const FiniteDifferenceGroup &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 
virtual ~FiniteDifferenceGroup ()
 Destructor.
 
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.
 
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$.
 
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)$.
 
- Public Member Functions inherited from LOCA::PhaseTransition::AbstractGroup
 AbstractGroup ()
 Default constructor.
 
virtual ~AbstractGroup ()
 Destructor.
 

Implementation of LOCA::TimeDependent::AbstractGroup virtual methods.

Teuchos::RCP< LOCA::GlobalDataglobalData
 Global data.
 
LOCA::ParameterVector params
 Parameter vector.
 
std::vector< int > param_index
 Parameter index in Thyra::ModelEvaluator.
 
std::vector< 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::SaveDataStrategysaveDataStrategy
 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.
 
bool paramsInSeparatePVecs
 
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.
 
void setSaveDataStrategy (const Teuchos::RCP< LOCA::Thyra::SaveDataStrategy > &s)
 Set strategy object for saving continuation data.
 

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 ()
 
- Protected Attributes inherited from NOX::Thyra::Group
bool is_valid_f_
 
bool is_valid_jacobian_
 
bool is_valid_newton_dir_
 
bool is_valid_gradient_dir_
 
bool is_valid_lows_
 
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.
 
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.
 
Teuchos::RCP< const ::Thyra::ModelEvaluator< double > > model_
 Problem interface.
 
- 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.
 

Detailed Description

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

Constructor & Destructor Documentation

◆ ~Group()

LOCA::Thyra::Group::~Group ( )
virtual

Destructor.

Reimplemented from LOCA::Abstract::Group.

Member Function Documentation

◆ applyShiftedMatrix()

NOX::Abstract::Group::ReturnType LOCA::Thyra::Group::applyShiftedMatrix ( const NOX::Abstract::Vector input,
NOX::Abstract::Vector result 
) const
virtual

Multiply the shifted matrix by a vector.

Reimplemented from LOCA::Abstract::Group.

References NOX::Thyra::Vector::getThyraRCPVector(), NOX::Thyra::Vector::getThyraVector(), and NOX::Abstract::Group::Ok.

◆ applyShiftedMatrixInverseMultiVector()

NOX::Abstract::Group::ReturnType LOCA::Thyra::Group::applyShiftedMatrixInverseMultiVector ( Teuchos::ParameterList &  params,
const NOX::Abstract::MultiVector input,
NOX::Abstract::MultiVector result 
) const
virtual

Apply the inverse of the shifted matrix by a multi-vector, as needed by the shift-and-invert and generalized Cayley transformations.

Reimplemented from LOCA::Abstract::Group.

◆ applyShiftedMatrixMultiVector()

NOX::Abstract::Group::ReturnType LOCA::Thyra::Group::applyShiftedMatrixMultiVector ( const NOX::Abstract::MultiVector input,
NOX::Abstract::MultiVector result 
) const
virtual

Multiply the shifted matrix by a multi-vector.

Reimplemented from LOCA::Abstract::Group.

References NOX::Thyra::MultiVector::getThyraMultiVector(), and NOX::Abstract::Group::Ok.

◆ clone()

Teuchos::RCP< NOX::Abstract::Group > LOCA::Thyra::Group::clone ( NOX::CopyType  type = NOX::DeepCopy) const
virtual

Cloning function.

Reimplemented from NOX::Thyra::Group.

Reimplemented in LOCA::Thyra::GroupWrapper.

◆ computeDfDpMulti()

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

Compute $\partial F/\partial p$ for each parameter $p$ indexed by paramIDs. The first column of dfdp holds F, which is valid if isValidF is true. Otherwise F must be computed.

Implements LOCA::MultiContinuation::AbstractGroup.

References LOCA::MultiContinuation::AbstractGroup::computeDfDpMulti(), NOX::Abstract::Group::Failed, NOX::Thyra::Vector::getThyraRCPVector(), NOX::Abstract::MultiVector::numVectors(), NOX::Abstract::Group::Ok, and NOX::Abstract::MultiVector::subView().

◆ computeF()

NOX::Abstract::Group::ReturnType LOCA::Thyra::Group::computeF ( )
virtual

◆ computeJacobian()

NOX::Abstract::Group::ReturnType LOCA::Thyra::Group::computeJacobian ( )
virtual

◆ computeScaledDotProduct()

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().

◆ computeShiftedMatrix()

NOX::Abstract::Group::ReturnType LOCA::Thyra::Group::computeShiftedMatrix ( double  alpha,
double  beta 
)
virtual

Compute the shifted matrix.

Reimplemented from LOCA::Abstract::Group.

References NOX::Abstract::Group::Failed, and NOX::Abstract::Group::Ok.

◆ copy()

void LOCA::Thyra::Group::copy ( const NOX::Abstract::Group source)
virtual

Copy.

Reimplemented from LOCA::Abstract::Group.

◆ getParam() [1/2]

double LOCA::Thyra::Group::getParam ( int  paramID) const
virtual

Return copy of parameter indexed by paramID.

Implements LOCA::MultiContinuation::AbstractGroup.

◆ getParam() [2/2]

double LOCA::Thyra::Group::getParam ( std::string  paramID) const
virtual

Return copy of parameter indexed by paramID.

Implements LOCA::MultiContinuation::AbstractGroup.

◆ getParams()

const LOCA::ParameterVector & LOCA::Thyra::Group::getParams ( ) const
virtual

Return a const reference to the ParameterVector owned by the group.

Implements LOCA::MultiContinuation::AbstractGroup.

◆ operator=() [1/3]

LOCA::Thyra::Group & LOCA::Thyra::Group::operator= ( const Group source)
virtual

◆ operator=() [2/3]

NOX::Abstract::Group & LOCA::Thyra::Group::operator= ( const NOX::Abstract::Group source)
virtual

Assignment operator.

Reimplemented from LOCA::Abstract::Group.

Reimplemented in LOCA::Thyra::GroupWrapper.

◆ operator=() [3/3]

NOX::Abstract::Group & LOCA::Thyra::Group::operator= ( const NOX::Thyra::Group source)
virtual

Assignment operator.

Reimplemented in LOCA::Thyra::GroupWrapper.

◆ postProcessContinuationStep()

void LOCA::Thyra::Group::postProcessContinuationStep ( LOCA::Abstract::Iterator::StepStatus  stepStatus)
virtual

Perform any postprocessing after a continuation step finishes.

Reimplemented from LOCA::MultiContinuation::AbstractGroup.

◆ preProcessContinuationStep()

void LOCA::Thyra::Group::preProcessContinuationStep ( LOCA::Abstract::Iterator::StepStatus  stepStatus)
virtual

Perform any preprocessing before a continuation step starts.

Reimplemented from LOCA::MultiContinuation::AbstractGroup.

◆ printSolution() [1/2]

void LOCA::Thyra::Group::printSolution ( const double  conParam) const
virtual

Call the user interface print() routine, solution vector.

Reimplemented from LOCA::MultiContinuation::AbstractGroup.

◆ printSolution() [2/2]

void LOCA::Thyra::Group::printSolution ( const NOX::Abstract::Vector x,
const double  conParam 
) const
virtual

Call the user interface print() routine, any vector.

Reimplemented from LOCA::MultiContinuation::AbstractGroup.

◆ projectToDraw()

void LOCA::Thyra::Group::projectToDraw ( const NOX::Abstract::Vector x,
double *  px 
) const
virtual

Projects solution to a few scalars for multiparameter continuation.

Reimplemented from LOCA::MultiContinuation::AbstractGroup.

◆ projectToDrawDimension()

int LOCA::Thyra::Group::projectToDrawDimension ( ) const
virtual

Returns the dimension of the project to draw array.

Reimplemented from LOCA::MultiContinuation::AbstractGroup.

◆ scaleVector()

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().

◆ setParam() [1/2]

void LOCA::Thyra::Group::setParam ( int  paramID,
double  val 
)
virtual

Set parameter indexed by paramID.

Implements LOCA::MultiContinuation::AbstractGroup.

◆ setParam() [2/2]

void LOCA::Thyra::Group::setParam ( std::string  paramID,
double  val 
)
virtual

Set parameter indexed by paramID.

Implements LOCA::MultiContinuation::AbstractGroup.

◆ setParams()

void LOCA::Thyra::Group::setParams ( const ParameterVector p)
virtual

Set the parameters.

Implements LOCA::MultiContinuation::AbstractGroup.

Member Data Documentation

◆ weight_vec_

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: