Tempus
Version of the Day
Time Integration
|
Transform a ModelEvaluator's sensitivity equations to its residual. More...
#include <Tempus_CombinedForwardSensitivityModelEvaluator_decl.hpp>
Public Types | |
typedef Thyra::VectorBase< Scalar > | Vector |
typedef Thyra::MultiVectorBase < Scalar > | MultiVector |
![]() | |
enum | EInArgsMembers |
enum | EInArgs_p_mp |
enum | EEvalType |
enum | EDerivativeMultiVectorOrientation |
enum | EDerivativeLinearOp |
enum | EDerivativeLinearity |
enum | ERankStatus |
enum | EOutArgsMembers |
enum | EOutArgsDfDp |
enum | EOutArgsDgDx_dot |
enum | EOutArgsDgDx |
enum | EOutArgsDgDp |
enum | EOutArgs_hess_vec_prod_f_xx |
enum | EOutArgs_hess_vec_prod_f_xp |
enum | EOutArgs_hess_vec_prod_f_px |
enum | EOutArgs_hess_vec_prod_f_pp |
enum | EOutArgs_hess_vec_prod_g_xx |
enum | EOutArgs_hess_vec_prod_g_xp |
enum | EOutArgs_hess_vec_prod_g_px |
enum | EOutArgs_hess_vec_prod_g_pp |
enum | EOutArgs_hess_f_xx |
enum | EOutArgs_hess_f_xp |
enum | EOutArgs_hess_f_pp |
enum | EOutArgs_hess_g_xx |
enum | EOutArgs_hess_g_xp |
enum | EOutArgs_hess_g_pp |
enum | EOutArgs_H_xx |
enum | EOutArgs_H_xp |
enum | EOutArgs_H_pp |
enum | EOutArgsDfDp_mp |
enum | EOutArgs_g_mp |
enum | EOutArgsDgDx_dot_mp |
enum | EOutArgsDgDx_mp |
enum | EOutArgsDgDp_mp |
typedef Teuchos::ScalarTraits < Scalar >::magnitudeType | ScalarMag |
Public Member Functions | |
CombinedForwardSensitivityModelEvaluator (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &model, const Teuchos::RCP< const Teuchos::ParameterList > &pList=Teuchos::null, const Teuchos::RCP< MultiVector > &dxdp_init=Teuchos::null, const Teuchos::RCP< MultiVector > &dx_dotdp_init=Teuchos::null, const Teuchos::RCP< MultiVector > &dx_dotdot_dp_init=Teuchos::null) | |
Constructor. More... | |
int | getSensitivityParamIndex () const |
Get sensitivity parameter index. More... | |
![]() | |
RCP< const VectorSpaceBase < Scalar > > | get_p_space (int l) const |
RCP< const Teuchos::Array < std::string > > | get_p_names (int l) const |
RCP< const VectorSpaceBase < Scalar > > | get_g_space (int j) const |
Teuchos::ArrayView< const std::string > | get_g_names (int j) const |
ModelEvaluatorBase::InArgs < Scalar > | getNominalValues () const |
ModelEvaluatorBase::InArgs < Scalar > | getLowerBounds () const |
ModelEvaluatorBase::InArgs < Scalar > | getUpperBounds () const |
RCP< LinearOpBase< Scalar > > | create_W_op () const |
RCP< PreconditionerBase< Scalar > > | create_W_prec () const |
RCP< const LinearOpWithSolveFactoryBase < Scalar > > | get_W_factory () const |
void | reportFinalPoint (const ModelEvaluatorBase::InArgs< Scalar > &finalPoint, const bool wasSolved) |
![]() | |
virtual int | Np () const =0 |
virtual int | Ng () const =0 |
virtual RCP< const VectorSpaceBase< Scalar > > | get_f_multiplier_space () const =0 |
virtual RCP< const VectorSpaceBase< Scalar > > | get_g_multiplier_space (int j) const =0 |
virtual RCP < LinearOpWithSolveBase < Scalar > > | create_W () const =0 |
virtual RCP< LinearOpBase < Scalar > > | create_DfDp_op (int l) const =0 |
virtual RCP< LinearOpBase < Scalar > > | create_hess_f_xx () const =0 |
virtual RCP< LinearOpBase < Scalar > > | create_hess_f_xp (int l) const =0 |
virtual RCP< LinearOpBase < Scalar > > | create_hess_f_pp (int l1, int l2) const =0 |
virtual RCP< LinearOpBase < Scalar > > | create_hess_g_xx (int j) const =0 |
virtual RCP< LinearOpBase < Scalar > > | create_hess_g_xp (int j, int l) const =0 |
virtual RCP< LinearOpBase < Scalar > > | create_hess_g_pp (int j, int l1, int l2) const =0 |
virtual ModelEvaluatorBase::OutArgs < Scalar > | createOutArgs () const =0 |
virtual void | evalModel (const ModelEvaluatorBase::InArgs< Scalar > &inArgs, const ModelEvaluatorBase::OutArgs< Scalar > &outArgs) const =0 |
ModelEvaluatorBase () | |
std::string | toString (ModelEvaluatorBase::EInArgsMembers) |
std::string | toString (ModelEvaluatorBase::EOutArgsMembers) |
std::string | toString (ModelEvaluatorBase::EDerivativeMultiVectorOrientation orientation) |
ModelEvaluatorBase::EDerivativeMultiVectorOrientation | getOtherDerivativeMultiVectorOrientation (ModelEvaluatorBase::EDerivativeMultiVectorOrientation orientation) |
![]() | |
virtual std::string | description () const |
virtual void | describe (FancyOStream &out, const EVerbosityLevel verbLevel=verbLevel_default) const |
void | describe (std::ostream &out, const EVerbosityLevel verbLevel=verbLevel_default) const |
virtual | ~Describable () |
LabeledObject () | |
virtual | ~LabeledObject () |
virtual void | setObjectLabel (const std::string &objectLabel) |
virtual std::string | getObjectLabel () const |
DescribableStreamManipulatorState | describe (const Describable &describable, const EVerbosityLevel verbLevel=Describable::verbLevel_default) |
std::ostream & | operator<< (std::ostream &os, const DescribableStreamManipulatorState &d) |
![]() | |
SensitivityModelEvaluatorBase () | |
Constructor. More... | |
virtual | ~SensitivityModelEvaluatorBase () |
Destructor. More... | |
virtual void | setForwardSolutionHistory (const Teuchos::RCP< const Tempus::SolutionHistory< Scalar > > &) |
Set solution history from forward state evaluation (for interpolation) More... | |
virtual void | setForwardSolutionState (const Teuchos::RCP< const Tempus::SolutionState< Scalar > > &) |
Set solution state from forward state evaluation (for frozen state) More... | |
virtual void | setSolver (const Teuchos::RCP< Thyra::NonlinearSolverBase< Scalar > > &, const bool) |
Set the solver of the underlying model if you want to reuse it. More... | |
Static Public Member Functions | |
static Teuchos::RCP< const Teuchos::ParameterList > | getValidParameters () |
Private Member Functions | |
Thyra::ModelEvaluatorBase::OutArgs < Scalar > | createOutArgsImpl () const |
void | evalModelImpl (const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs, const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &outArgs) const |
Private Attributes | |
Thyra::ModelEvaluatorBase::InArgs < Scalar > | prototypeInArgs_ |
Thyra::ModelEvaluatorBase::OutArgs < Scalar > | prototypeOutArgs_ |
Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > | model_ |
Teuchos::RCP< MultiVector > | dxdp_init_ |
Teuchos::RCP< MultiVector > | dx_dotdp_init_ |
Teuchos::RCP< MultiVector > | dx_dotdotdp_init_ |
int | p_index_ |
int | x_tangent_index_ |
int | xdot_tangent_index_ |
int | xdotdot_tangent_index_ |
bool | use_dfdp_as_tangent_ |
int | num_param_ |
Teuchos::RCP< const Thyra::DefaultMultiVectorProductVectorSpace < Scalar > > | dxdp_space_ |
Teuchos::RCP< const Thyra::DefaultMultiVectorProductVectorSpace < Scalar > > | x_dxdp_space_ |
Teuchos::RCP< const Thyra::DefaultMultiVectorProductVectorSpace < Scalar > > | dfdp_space_ |
Teuchos::RCP< const Thyra::DefaultMultiVectorProductVectorSpace < Scalar > > | f_dfdp_space_ |
Teuchos::RCP < Thyra::LinearOpBase< Scalar > > | my_dfdx_ |
Teuchos::RCP < Thyra::LinearOpBase< Scalar > > | my_dfdxdot_ |
Teuchos::RCP < Thyra::LinearOpBase< Scalar > > | my_dfdxdotdot_ |
Public functions overridden from SensitivityModelEvaulator. | |
Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > | getForwardModel () const |
Get the underlying model 'f'. More... | |
Additional Inherited Members | |
![]() | |
static const int | NUM_E_IN_ARGS_MEMBERS |
static const int | NUM_E_OUT_ARGS_MEMBERS |
![]() | |
static const EVerbosityLevel | verbLevel_default |
Transform a ModelEvaluator's sensitivity equations to its residual.
This class wraps a given ModelEvalutor encapsulating f(x,p) and creates a new "residual" for it and the forward sensitivity equations: F(X) = [ f(x,p) ] = 0 [ (df/dx)(x,p) * dx/dp + df/dp(x,p) ] where X = [ x; dx/dp ] (transient terms supressed for simplicity). This model evaluator can then be handed to a regular (non)linear solver to compute X. Note that even though these equations are linear in X, it is not necessarily the case that the underlying model evaluator accurately computes df/dx in its evaluation of W. Therefore this model evaluator can optionally reinterpret the model's df/dp out-arg as (df/dx)(x,p) * dx/dp + df/dp(x,p) where dx/dp is passed as another parameter (product) vector (encapsulated in the Thyra::DefaultMultiVectorProductVector). This is not standard model evaluator behavior, but is useful for models where W is only an approximation to df/dx and/or the model is capable of directly computing (df/dx)(x,p) * dx/dp + df/dp(x,p).
Definition at line 38 of file Tempus_CombinedForwardSensitivityModelEvaluator_decl.hpp.
typedef Thyra::VectorBase<Scalar> Tempus::CombinedForwardSensitivityModelEvaluator< Scalar >::Vector |
Definition at line 42 of file Tempus_CombinedForwardSensitivityModelEvaluator_decl.hpp.
typedef Thyra::MultiVectorBase<Scalar> Tempus::CombinedForwardSensitivityModelEvaluator< Scalar >::MultiVector |
Definition at line 43 of file Tempus_CombinedForwardSensitivityModelEvaluator_decl.hpp.
Tempus::CombinedForwardSensitivityModelEvaluator< Scalar >::CombinedForwardSensitivityModelEvaluator | ( | const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > & | model, |
const Teuchos::RCP< const Teuchos::ParameterList > & | pList = Teuchos::null , |
||
const Teuchos::RCP< MultiVector > & | dxdp_init = Teuchos::null , |
||
const Teuchos::RCP< MultiVector > & | dx_dotdp_init = Teuchos::null , |
||
const Teuchos::RCP< MultiVector > & | dx_dotdot_dp_init = Teuchos::null |
||
) |
Constructor.
The optionally supplied parameter list supports the following options:
Definition at line 23 of file Tempus_CombinedForwardSensitivityModelEvaluator_impl.hpp.
|
inlinevirtual |
Get the underlying model 'f'.
Reimplemented from Tempus::SensitivityModelEvaluatorBase< Scalar >.
Definition at line 80 of file Tempus_CombinedForwardSensitivityModelEvaluator_decl.hpp.
|
inline |
Get sensitivity parameter index.
Definition at line 86 of file Tempus_CombinedForwardSensitivityModelEvaluator_decl.hpp.
|
virtual |
Implements Thyra::ModelEvaluator< class >.
Definition at line 109 of file Tempus_CombinedForwardSensitivityModelEvaluator_impl.hpp.
|
virtual |
Implements Thyra::ModelEvaluator< class >.
Definition at line 117 of file Tempus_CombinedForwardSensitivityModelEvaluator_impl.hpp.
|
virtual |
Implements Thyra::ModelEvaluator< class >.
Definition at line 125 of file Tempus_CombinedForwardSensitivityModelEvaluator_impl.hpp.
|
virtual |
Implements Thyra::ModelEvaluator< class >.
Definition at line 133 of file Tempus_CombinedForwardSensitivityModelEvaluator_impl.hpp.
|
virtual |
Implements Thyra::ModelEvaluator< class >.
Definition at line 141 of file Tempus_CombinedForwardSensitivityModelEvaluator_impl.hpp.
|
virtual |
Implements Thyra::ModelEvaluator< class >.
Definition at line 149 of file Tempus_CombinedForwardSensitivityModelEvaluator_impl.hpp.
|
virtual |
Implements Thyra::ModelEvaluator< class >.
Definition at line 157 of file Tempus_CombinedForwardSensitivityModelEvaluator_impl.hpp.
|
virtual |
Implements Thyra::ModelEvaluator< class >.
Definition at line 166 of file Tempus_CombinedForwardSensitivityModelEvaluator_impl.hpp.
|
virtual |
Implements Thyra::ModelEvaluator< class >.
Definition at line 174 of file Tempus_CombinedForwardSensitivityModelEvaluator_impl.hpp.
|
virtual |
Implements Thyra::ModelEvaluator< class >.
Definition at line 182 of file Tempus_CombinedForwardSensitivityModelEvaluator_impl.hpp.
|
virtual |
Implements Thyra::ModelEvaluator< class >.
Definition at line 190 of file Tempus_CombinedForwardSensitivityModelEvaluator_impl.hpp.
|
virtual |
Implements Thyra::ModelEvaluator< class >.
Definition at line 205 of file Tempus_CombinedForwardSensitivityModelEvaluator_impl.hpp.
|
virtual |
Implements Thyra::ModelEvaluator< class >.
Definition at line 213 of file Tempus_CombinedForwardSensitivityModelEvaluator_impl.hpp.
|
static |
Definition at line 453 of file Tempus_CombinedForwardSensitivityModelEvaluator_impl.hpp.
|
private |
Definition at line 287 of file Tempus_CombinedForwardSensitivityModelEvaluator_impl.hpp.
|
private |
Definition at line 295 of file Tempus_CombinedForwardSensitivityModelEvaluator_impl.hpp.
|
private |
Definition at line 131 of file Tempus_CombinedForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 132 of file Tempus_CombinedForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 134 of file Tempus_CombinedForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 135 of file Tempus_CombinedForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 136 of file Tempus_CombinedForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 137 of file Tempus_CombinedForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 138 of file Tempus_CombinedForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 139 of file Tempus_CombinedForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 140 of file Tempus_CombinedForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 141 of file Tempus_CombinedForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 142 of file Tempus_CombinedForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 144 of file Tempus_CombinedForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 145 of file Tempus_CombinedForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 146 of file Tempus_CombinedForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 147 of file Tempus_CombinedForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 148 of file Tempus_CombinedForwardSensitivityModelEvaluator_decl.hpp.
|
mutableprivate |
Definition at line 150 of file Tempus_CombinedForwardSensitivityModelEvaluator_decl.hpp.
|
mutableprivate |
Definition at line 151 of file Tempus_CombinedForwardSensitivityModelEvaluator_decl.hpp.
|
mutableprivate |
Definition at line 152 of file Tempus_CombinedForwardSensitivityModelEvaluator_decl.hpp.