Rythmos - Transient Integration for Differential Equations Version of the Day
Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar > Class Template Reference

Explicit forward sensitivity transient ModelEvaluator subclass. More...

#include <Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp>

Inheritance diagram for Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >:
Inheritance graph
[legend]

List of all members.

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.

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
 

Detailed Description

template<class Scalar>
class Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >

Explicit forward sensitivity transient ModelEvaluator subclass.

This class provides a very general implemenation of a linear forward sensitivity model evaluator for an explicit ODE.

Introduction

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.


Constructor & Destructor Documentation


Member Function Documentation

template<class Scalar >
void Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::initializeStructure ( const RCP< const Thyra::ModelEvaluator< Scalar > > &  stateModel,
const int  p_index 
) [virtual]
template<class Scalar >
void Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::initializeStructureInitCondOnly ( const RCP< const Thyra::ModelEvaluator< Scalar > > &  stateModel,
const RCP< const Thyra::VectorSpaceBase< Scalar > > &  p_space 
) [virtual]
template<class Scalar >
RCP< const Thyra::ModelEvaluator< Scalar > > Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::getStateModel ( ) const [virtual]
template<class Scalar >
RCP< Thyra::ModelEvaluator< Scalar > > Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::getNonconstStateModel ( ) const [virtual]
template<class Scalar >
int Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::get_p_index ( ) const [virtual]
template<class Scalar >
RCP< const Thyra::DefaultMultiVectorProductVectorSpace< Scalar > > Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::get_s_bar_space ( ) const [virtual]
template<class Scalar >
RCP< const Thyra::VectorSpaceBase< Scalar > > Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::get_p_sens_space ( ) const [virtual]
template<class Scalar >
void Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::initializePointState ( Ptr< StepperBase< Scalar > >  stateStepper,
bool  forceUpToDateW 
) [virtual]

Initialize full state for a single point in time.

Implements Rythmos::ForwardSensitivityModelEvaluatorBase< Scalar >.

Definition at line 379 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.

template<class Scalar >
RCP< const Thyra::VectorSpaceBase< Scalar > > Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::get_x_space ( ) const
template<class Scalar >
RCP< const Thyra::VectorSpaceBase< Scalar > > Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::get_f_space ( ) const
template<class Scalar >
Thyra::ModelEvaluatorBase::InArgs< Scalar > Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::getNominalValues ( ) const
template<class Scalar >
RCP< Thyra::LinearOpWithSolveBase< Scalar > > Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::create_W ( ) const
template<class Scalar >
Thyra::ModelEvaluatorBase::InArgs< Scalar > Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::createInArgs ( ) const

The documentation for this class was generated from the following file:
 All Classes Functions Variables Typedefs Friends