Tempus
Version of the Day
Time Integration
|
Transform a ModelEvaluator's sensitivity equations to its residual. More...
#include <Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp>
Public Types | |
typedef Thyra::VectorBase< Scalar > | Vector |
typedef Thyra::MultiVectorBase < Scalar > | MultiVector |
Public Member Functions | |
StaggeredForwardSensitivityModelEvaluator (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... | |
Public functions overridden from SensitivityModelEvaulator. | |
Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > | getForwardModel () const |
Get the underlying model 'f'. More... | |
void | setForwardSolutionHistory (const Teuchos::RCP< const Tempus::SolutionHistory< Scalar > > &sh) |
Set solution history from forward state evaluation (for interpolation) More... | |
virtual void | setForwardSolutionState (const Teuchos::RCP< const Tempus::SolutionState< Scalar > > &s) |
Set solution state from forward state evaluation (for frozen state) More... | |
virtual void | setSolver (const Teuchos::RCP< Thyra::NonlinearSolverBase< Scalar > > &solver, const bool force_W_update) |
Set the solver of the underlying model if you want to reuse it. More... | |
Public functions overridden from ModelEvaulator. | |
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > | get_p_space (int p) const |
Teuchos::RCP< const Teuchos::Array< std::string > > | get_p_names (int p) const |
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > | get_x_space () const |
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > | get_f_space () const |
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > | get_g_space (int j) const |
Teuchos::ArrayView< const std::string > | get_g_names (int j) const |
Teuchos::RCP < Thyra::LinearOpBase< Scalar > > | create_W_op () const |
Teuchos::RCP < Thyra::LinearOpBase< Scalar > > | create_DgDx_dot_op (int j) const |
Teuchos::RCP < Thyra::LinearOpBase< Scalar > > | create_DgDx_op (int j) const |
Teuchos::RCP < Thyra::LinearOpBase< Scalar > > | create_DgDp_op (int j, int l) const |
Teuchos::RCP< const Thyra::LinearOpWithSolveFactoryBase < Scalar > > | get_W_factory () const |
Thyra::ModelEvaluatorBase::InArgs < Scalar > | createInArgs () const |
Thyra::ModelEvaluatorBase::InArgs < Scalar > | getNominalValues () const |
Public Member Functions inherited from Tempus::SensitivityModelEvaluatorBase< Scalar > | |
SensitivityModelEvaluatorBase () | |
Constructor. More... | |
virtual | ~SensitivityModelEvaluatorBase () |
Destructor. 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 > > | dfdp_space_ |
Teuchos::RCP< const Tempus::SolutionHistory < Scalar > > | sh_ |
Teuchos::RCP < Thyra::LinearOpBase< Scalar > > | lo_ |
Teuchos::RCP < Thyra::PreconditionerBase < Scalar > > | po_ |
Teuchos::RCP < Thyra::LinearOpBase< Scalar > > | my_dfdx_ |
Teuchos::RCP < Thyra::LinearOpBase< Scalar > > | my_dfdxdot_ |
Teuchos::RCP < Thyra::LinearOpBase< Scalar > > | my_dfdxdotdot_ |
Teuchos::RCP< const Tempus::SolutionState< Scalar > > | forward_state_ |
Teuchos::RCP < Tempus::SolutionState < Scalar > > | nc_forward_state_ |
Scalar | t_interp_ |
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 the forward sensitivity equations: F(X) = (df/dx)(x,p) * X + df/dp(x,p) = 0 where 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).
This model evaluator differes from CombinedForwardSensitivityModelEvaluator in that it doesn't include the state equations in the residual, just the sensitivity equations. Therefore it provides methods to set the state solution vector (x) and time derivatives (x_dot, x_dot_dot) for use in evaluating the senstivity residual. It also provides methods for setting the linear operator (W a.k.a. alpha*df/dx + beta*df/dx_dot) and its preconditioner in cases where they can be reused from the state model evaluations.
Definition at line 48 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
typedef Thyra::MultiVectorBase<Scalar> Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::MultiVector |
Definition at line 53 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
typedef Thyra::VectorBase<Scalar> Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::Vector |
Definition at line 52 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::StaggeredForwardSensitivityModelEvaluator | ( | 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_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
Teuchos::RCP< Thyra::LinearOpBase< Scalar > > Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::create_DgDp_op | ( | int | j, |
int | l | ||
) | const |
Definition at line 204 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
Teuchos::RCP< Thyra::LinearOpBase< Scalar > > Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::create_DgDx_dot_op | ( | int | j | ) | const |
Definition at line 188 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
Teuchos::RCP< Thyra::LinearOpBase< Scalar > > Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::create_DgDx_op | ( | int | j | ) | const |
Definition at line 196 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
Teuchos::RCP< Thyra::LinearOpBase< Scalar > > Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::create_W_op | ( | ) | const |
Definition at line 175 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
Thyra::ModelEvaluatorBase::InArgs< Scalar > Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::createInArgs | ( | ) | const |
Definition at line 236 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
|
private |
Definition at line 298 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
|
private |
Definition at line 306 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::get_f_space | ( | ) | const |
Definition at line 151 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
Teuchos::ArrayView< const std::string > Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::get_g_names | ( | int | j | ) | const |
Definition at line 167 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::get_g_space | ( | int | j | ) | const |
Definition at line 159 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
Teuchos::RCP< const Teuchos::Array< std::string > > Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::get_p_names | ( | int | p | ) | const |
Definition at line 134 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::get_p_space | ( | int | p | ) | const |
Definition at line 125 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
Teuchos::RCP< const Thyra::LinearOpWithSolveFactoryBase< Scalar > > Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::get_W_factory | ( | ) | const |
Definition at line 212 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::get_x_space | ( | ) | const |
Definition at line 143 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
|
inlinevirtual |
Get the underlying model 'f'.
Reimplemented from Tempus::SensitivityModelEvaluatorBase< Scalar >.
Definition at line 90 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
Thyra::ModelEvaluatorBase::InArgs< Scalar > Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::getNominalValues | ( | ) | const |
Definition at line 244 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
|
static |
Definition at line 467 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
|
virtual |
Set solution history from forward state evaluation (for interpolation)
Reimplemented from Tempus::SensitivityModelEvaluatorBase< Scalar >.
Definition at line 105 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
|
virtual |
Set solution state from forward state evaluation (for frozen state)
Reimplemented from Tempus::SensitivityModelEvaluatorBase< Scalar >.
Definition at line 115 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
|
inlinevirtual |
Set the solver of the underlying model if you want to reuse it.
Reimplemented from Tempus::SensitivityModelEvaluatorBase< Scalar >.
Definition at line 102 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 171 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 162 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 161 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 160 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 170 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
mutableprivate |
Definition at line 180 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 174 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 159 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
mutableprivate |
Definition at line 177 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
mutableprivate |
Definition at line 178 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
mutableprivate |
Definition at line 179 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
mutableprivate |
Definition at line 181 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 169 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 163 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 175 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 156 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 157 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 172 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
mutableprivate |
Definition at line 182 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 167 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 164 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 165 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 166 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.