Rythmos - Transient Integration for Differential Equations
Version of the Day
|
Explicit forward sensitivity transient ModelEvaluator
subclass.
More...
#include <Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp>
Constructors/Intializers/Accessors | |
ForwardSensitivityExplicitModelEvaluator () | |
Public functions overridden from ForwardSensitivityModelEvaluatorBase. | |
void | initializeStructure (const RCP< const Thyra::ModelEvaluator< Scalar > > &stateModel, const int p_index) |
void | initializeStructureInitCondOnly (const RCP< const Thyra::ModelEvaluator< Scalar > > &stateModel, const RCP< const Thyra::VectorSpaceBase< Scalar > > &p_space) |
RCP< const Thyra::ModelEvaluator< Scalar > > | getStateModel () const |
RCP< Thyra::ModelEvaluator < Scalar > > | getNonconstStateModel () const |
int | get_p_index () const |
RCP< const Thyra::DefaultMultiVectorProductVectorSpace < Scalar > > | get_s_bar_space () const |
RCP< const Thyra::VectorSpaceBase< Scalar > > | get_p_sens_space () const |
void | initializePointState (Ptr< StepperBase< Scalar > > stateStepper, bool forceUpToDateW) |
Initialize full state for a single point in time. More... | |
Public functions overridden from ModelEvaulator. | |
RCP< const Thyra::VectorSpaceBase< Scalar > > | get_x_space () const |
RCP< const Thyra::VectorSpaceBase< Scalar > > | get_f_space () const |
Thyra::ModelEvaluatorBase::InArgs < Scalar > | getNominalValues () const |
RCP < Thyra::LinearOpWithSolveBase < Scalar > > | create_W () const |
Thyra::ModelEvaluatorBase::InArgs < Scalar > | createInArgs () const |
Additional Inherited Members |
Explicit forward sensitivity transient ModelEvaluator
subclass.
This class provides a very general implemenation of a linear forward sensitivity model evaluator for an explicit ODE.
The form of the parameterized state equation is:
x_dot(t) = f(x(t),{p_l},t), over t = [t0,tf] x(t0) = x_init(p)
As shown above, the parameters are assumed to be steady state and can enter through the intial condition and/or through the ODE equation itself.
The explicit forward sensitivity equations written in multi-vector form are:
S_dot = d(f)/d(x)*S + d(f)/d(p) = 0, over t = [t0,tf] S(t0) = d(x_init)/d(p)
where S
is a multi-vector with np
columns where each column S(:,j) = d(x)/d(p_j)
is the sensitivity of x(t)
with respect to the p_j
parameter. The sensitivity parameter subvector p
here is really just one of the parameter subvectors in the state equation. This index of the parameter subvector for which the sensitivity equations are written for is given by p_index
. Note that above d(f)/d(x)
and d(f)/d(p
are both evaluated at the solution to the state equation (x(t),t)
and are not functions of S_dot
or S
.
Since the model evaluator interface must be expressed in vector form, the multi-vector form of the forward sensitivity equations is flattened out into:
s_bar_dot(t) = f_sens(s_bar(t),{p_l},t), over t = [t0,tf] s_bar(t0) = s_bar_init
where
s_bar = [ S(:,0); S(:,0); ...; S(:,np-1) ] [ d(f)/d(x)*S(:,0) + d(f)/d(p(0)) ] [ d(f)/d(x)*S(:,1) + d(f)/d(p(1)) ] f_sens = [ ... ] [ d(f)/d(x)*S(:,np-1) + d(f)/d(p(np-1)) ] s_bar_init = [ d(x_init)/d(p(0)); d(x_init)/d(p(1)); ...; d(x_init)/d(p(np-1)) ]
The product vector s_bar
is represented as a specialized Thyra::ProductVectorBase
subclass object with np
"blocks" in terms of a single Thyra::MultiVectorBase
object (which has np
columns).
ToDo: Finish documention!
Definition at line 126 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.
Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::ForwardSensitivityExplicitModelEvaluator | ( | ) |
Definition at line 264 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.
|
virtual |
Implements Rythmos::ForwardSensitivityModelEvaluatorBase< Scalar >.
Definition at line 274 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.
|
virtual |
Implements Rythmos::ForwardSensitivityModelEvaluatorBase< Scalar >.
Definition at line 330 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.
|
virtual |
Implements Rythmos::ForwardSensitivityModelEvaluatorBase< Scalar >.
Definition at line 341 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.
|
virtual |
Implements Rythmos::ForwardSensitivityModelEvaluatorBase< Scalar >.
Definition at line 349 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.
|
virtual |
Implements Rythmos::ForwardSensitivityModelEvaluatorBase< Scalar >.
Definition at line 356 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.
|
virtual |
Implements Rythmos::ForwardSensitivityModelEvaluatorBase< Scalar >.
Definition at line 364 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.
|
virtual |
Implements Rythmos::ForwardSensitivityModelEvaluatorBase< Scalar >.
Definition at line 372 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.
|
virtual |
Initialize full state for a single point in time.
Implements Rythmos::ForwardSensitivityModelEvaluatorBase< Scalar >.
Definition at line 379 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.
RCP< const Thyra::VectorSpaceBase< Scalar > > Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::get_x_space | ( | ) | const |
Definition at line 417 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.
RCP< const Thyra::VectorSpaceBase< Scalar > > Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::get_f_space | ( | ) | const |
Definition at line 425 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.
Thyra::ModelEvaluatorBase::InArgs< Scalar > Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::getNominalValues | ( | ) | const |
Definition at line 433 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.
RCP< Thyra::LinearOpWithSolveBase< Scalar > > Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::create_W | ( | ) | const |
Definition at line 441 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.
Thyra::ModelEvaluatorBase::InArgs< Scalar > Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::createInArgs | ( | ) | const |
Definition at line 449 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.