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

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

Definition at line 264 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.


Member Function Documentation

template<class Scalar>
void Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::initializeStructure ( const RCP< const Thyra::ModelEvaluator< Scalar > > &  stateModel,
const int  p_index 
) [virtual]

Implements Rythmos::ForwardSensitivityModelEvaluatorBase< Scalar >.

Definition at line 274 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.

template<class Scalar>
void Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::initializeStructureInitCondOnly ( const RCP< const Thyra::ModelEvaluator< Scalar > > &  stateModel,
const RCP< const Thyra::VectorSpaceBase< Scalar > > &  p_space 
) [virtual]

Implements Rythmos::ForwardSensitivityModelEvaluatorBase< Scalar >.

Definition at line 330 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.

template<class Scalar>
RCP< const Thyra::ModelEvaluator< Scalar > > Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::getStateModel (  )  const [virtual]

Implements Rythmos::ForwardSensitivityModelEvaluatorBase< Scalar >.

Definition at line 341 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.

template<class Scalar>
RCP< Thyra::ModelEvaluator< Scalar > > Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::getNonconstStateModel (  )  const [virtual]

Implements Rythmos::ForwardSensitivityModelEvaluatorBase< Scalar >.

Definition at line 349 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.

template<class Scalar>
int Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::get_p_index (  )  const [virtual]

Implements Rythmos::ForwardSensitivityModelEvaluatorBase< Scalar >.

Definition at line 356 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.

template<class Scalar>
RCP< const Thyra::DefaultMultiVectorProductVectorSpace< Scalar > > Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::get_s_bar_space (  )  const [virtual]

Implements Rythmos::ForwardSensitivityModelEvaluatorBase< Scalar >.

Definition at line 364 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.

template<class Scalar>
RCP< const Thyra::VectorSpaceBase< Scalar > > Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::get_p_sens_space (  )  const [virtual]

Implements Rythmos::ForwardSensitivityModelEvaluatorBase< Scalar >.

Definition at line 372 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.

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

Definition at line 417 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.

template<class Scalar>
RCP< const Thyra::VectorSpaceBase< Scalar > > Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::get_f_space (  )  const

Definition at line 425 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.

template<class Scalar>
Thyra::ModelEvaluatorBase::InArgs< Scalar > Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::getNominalValues (  )  const

Definition at line 433 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.

template<class Scalar>
RCP< Thyra::LinearOpWithSolveBase< Scalar > > Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::create_W (  )  const

Definition at line 441 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.

template<class Scalar>
Thyra::ModelEvaluatorBase::InArgs< Scalar > Rythmos::ForwardSensitivityExplicitModelEvaluator< Scalar >::createInArgs (  )  const

Definition at line 449 of file Rythmos_ForwardSensitivityExplicitModelEvaluator.hpp.


The documentation for this class was generated from the following file:
Generated on Tue Jul 13 09:23:54 2010 for Rythmos - Transient Integration for Differential Equations by  doxygen 1.4.7