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 Thyra::ModelEvaluator< Scalar > > &sens_residual_model, const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &sens_solve_model, const bool is_pseudotransient, 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. | |
![]() | |
SensitivityModelEvaluatorBase () | |
Constructor. | |
virtual | ~SensitivityModelEvaluatorBase () |
Destructor. | |
virtual Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > | getForwardModel () const |
Get the underlying forward model. | |
virtual void | setForwardSolutionHistory (const Teuchos::RCP< const Tempus::SolutionHistory< Scalar > > &) |
Set solution history from forward state evaluation (for interpolation) | |
virtual void | setForwardSolutionState (const Teuchos::RCP< const Tempus::SolutionState< Scalar > > &) |
Set solution state from forward state evaluation (for frozen state) | |
virtual void | setSolver (const Teuchos::RCP< Thyra::NonlinearSolverBase< Scalar > > &, const bool) |
Set the solver of the underlying model if you want to reuse it. | |
Public functions overridden from ModelEvaulator. | |
typedef Thyra::DefaultMultiVectorProductVectorSpace< Scalar > | DMVPVS |
Thyra::ModelEvaluatorBase::InArgs< Scalar > | prototypeInArgs_ |
Thyra::ModelEvaluatorBase::OutArgs< Scalar > | prototypeOutArgs_ |
Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > | model_ |
Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > | sens_residual_model_ |
Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > | sens_solve_model_ |
Teuchos::RCP< MultiVector > | dxdp_init_ |
Teuchos::RCP< MultiVector > | dx_dotdp_init_ |
Teuchos::RCP< MultiVector > | dx_dotdotdp_init_ |
int | p_index_ |
int | g_index_ |
int | x_tangent_index_ |
int | xdot_tangent_index_ |
int | xdotdot_tangent_index_ |
bool | use_dfdp_as_tangent_ |
bool | use_dgdp_as_tangent_ |
int | num_param_ |
int | num_response_ |
int | g_offset_ |
Teuchos::RCP< const DMVPVS > | dxdp_space_ |
Teuchos::RCP< const DMVPVS > | dfdp_space_ |
Teuchos::RCP< const DMVPVS > | dgdp_space_ |
Teuchos::RCP< const Tempus::SolutionHistory< Scalar > > | sh_ |
Teuchos::RCP< Thyra::LinearOpBase< Scalar > > | lo_ |
Teuchos::RCP< Thyra::PreconditionerBase< Scalar > > | po_ |
bool | is_pseudotransient_ |
bool | mass_matrix_is_computed_ |
bool | jacobian_matrix_is_computed_ |
bool | acceleration_matrix_is_computed_ |
bool | residual_sensitivity_is_computed_ |
Teuchos::RCP< Thyra::LinearOpBase< Scalar > > | my_dfdx_ |
Teuchos::RCP< Thyra::LinearOpBase< Scalar > > | my_dfdxdot_ |
Teuchos::RCP< Thyra::LinearOpBase< Scalar > > | my_dfdxdotdot_ |
Teuchos::RCP< Thyra::MultiVectorBase< Scalar > > | my_dfdp_ |
Teuchos::RCP< Thyra::LinearOpBase< Scalar > > | my_dgdx_ |
Teuchos::RCP< Thyra::MultiVectorBase< Scalar > > | my_dgdx_mv_ |
Teuchos::RCP< const Tempus::SolutionState< Scalar > > | forward_state_ |
Teuchos::RCP< Tempus::SolutionState< Scalar > > | nc_forward_state_ |
Scalar | t_interp_ |
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 |
static Teuchos::RCP< const Teuchos::ParameterList > | getValidParameters () |
Thyra::ModelEvaluatorBase::OutArgs< Scalar > | createOutArgsImpl () const |
void | evalModelImpl (const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs, const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &outArgs) const |
Public functions overridden from SensitivityModelEvaulator. | |
Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > | getForwardModel () const |
Get the underlying model 'f'. | |
void | setForwardSolutionHistory (const Teuchos::RCP< const Tempus::SolutionHistory< Scalar > > &sh) |
Set solution history from forward state evaluation (for interpolation) | |
virtual void | setForwardSolutionState (const Teuchos::RCP< const Tempus::SolutionState< Scalar > > &s) |
Set solution state from forward state evaluation (for frozen state) | |
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. | |
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 49 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
typedef Thyra::VectorBase<Scalar> Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::Vector |
Definition at line 53 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
typedef Thyra::MultiVectorBase<Scalar> Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::MultiVector |
Definition at line 54 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 156 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::StaggeredForwardSensitivityModelEvaluator | ( | const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > & | model, |
const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > & | sens_residual_model, | ||
const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > & | sens_solve_model, | ||
const bool | is_pseudotransient, | ||
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 22 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
|
inlinevirtual |
Get the underlying model 'f'.
Reimplemented from Tempus::SensitivityModelEvaluatorBase< Scalar >.
Definition at line 97 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
virtual |
Set solution history from forward state evaluation (for interpolation)
Reimplemented from Tempus::SensitivityModelEvaluatorBase< Scalar >.
Definition at line 147 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 157 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 109 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::get_p_space | ( | int | p | ) | const |
Definition at line 167 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 176 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::get_x_space |
Definition at line 185 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::get_f_space |
Definition at line 193 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::get_g_space | ( | int | j | ) | const |
Definition at line 201 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
Teuchos::ArrayView< const std::string > Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::get_g_names | ( | int | j | ) | const |
Definition at line 215 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
Teuchos::RCP< Thyra::LinearOpBase< Scalar > > Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::create_W_op |
Definition at line 233 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
Teuchos::RCP< Thyra::LinearOpBase< Scalar > > Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::create_DgDx_dot_op | ( | int | j | ) | const |
Definition at line 246 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
Teuchos::RCP< Thyra::LinearOpBase< Scalar > > Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::create_DgDx_op | ( | int | j | ) | const |
Definition at line 254 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 262 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
Teuchos::RCP< const Thyra::LinearOpWithSolveFactoryBase< Scalar > > Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::get_W_factory |
Definition at line 270 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
Thyra::ModelEvaluatorBase::InArgs< Scalar > Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::createInArgs |
Definition at line 294 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
Thyra::ModelEvaluatorBase::InArgs< Scalar > Tempus::StaggeredForwardSensitivityModelEvaluator< Scalar >::getNominalValues |
Definition at line 302 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
|
static |
Definition at line 665 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
|
private |
Definition at line 356 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
|
private |
Definition at line 364 of file Tempus_StaggeredForwardSensitivityModelEvaluator_impl.hpp.
|
private |
Definition at line 165 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 166 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 168 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 169 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 170 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 171 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 172 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 173 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 174 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 175 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 176 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 177 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 178 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 179 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 180 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 182 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 183 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 184 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 185 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 186 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 187 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 188 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 190 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 191 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
private |
Definition at line 193 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
mutableprivate |
Definition at line 194 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
mutableprivate |
Definition at line 195 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
mutableprivate |
Definition at line 196 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
mutableprivate |
Definition at line 197 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
mutableprivate |
Definition at line 198 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
mutableprivate |
Definition at line 199 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
mutableprivate |
Definition at line 200 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
mutableprivate |
Definition at line 201 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
mutableprivate |
Definition at line 202 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
mutableprivate |
Definition at line 203 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
mutableprivate |
Definition at line 204 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
mutableprivate |
Definition at line 205 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.
|
mutableprivate |
Definition at line 206 of file Tempus_StaggeredForwardSensitivityModelEvaluator_decl.hpp.