Rythmos Namespace Reference


Classes

class  BackwardEulerStepper
 Simple concrete stepper subclass implementing an implicit backward Euler method. More...
class  BreakPointInformerBase
 Interface for using breakpoints. More...
class  CompositeIntegratorObserver
 Standard composite observer subclass. More...
class  DataStore
class  ErrWtVecCalcAcceptingStepControlStrategyBase
 Mix-in interface for step control strategy objects that accept an external error weight calculation and WRMS norm. More...
class  ErrWtVecCalcBase
class  ExplicitRKStepper
  More...
class  ExplicitTaylorPolynomialStepper
 Implementation of Rythmos::Stepper for explicit Taylor polynomial time integration of ODEs. More...
class  ROpLogNormInf
 Reduction operator for a logarithmic infinity norm. More...
class  ForwardEulerStepper
  More...
class  ForwardResponseSensitivityComputer
 Concrete utility class for computing (assembling) forward transient response sensitivities. More...
class  ForwardResponseSensitivityComputerObserver
 Observer class that computes sensitivities at the end of each time step. More...
class  ForwardSensitivityIntegratorAsModelEvaluator
 Concrete Thyra::ModelEvaluator subclass that turns a forward ODE/DAE with an observation into a parameterized evaluation of p -> g with forward sensitivities DgDp. More...
class  ForwardSensitivityModelEvaluator
 Forward sensitivity transient ModelEvaluator subclass. More...
class  ForwardSensitivityStepper
 Foward sensitivity stepper concrete subclass. More...
class  HermiteInterpolator
class  ImplicitBDFStepper
  More...
class  ImplicitBDFStepperErrWtVecCalc
class  ImplicitBDFStepperStepControl
class  IntegrationControlStrategyBase
 Base class for strategy objects that control integration by selecting step sizes for a stepper. More...
class  IntegrationObserverBase
 Base class for strategy objects that observe and time integration by observing the stepper object. More...
class  IntegratorBase
 Abstract interface for time integrators. More...
class  IntegratorDefault
 Concrete subclass of InterpolationBufferBase implemented in terms of a StepperBase object and a trailing InterpolationBufferBase object. More...
class  InterpolationBuffer
 concrete class for interpolation buffer functionality. More...
class  InterpolationBufferAppenderBase
class  InterpolationBufferAppenderDefault
class  InterpolationBufferAppenderSmart
class  InterpolationBufferBase
 Base class for an interpolation buffer. More...
class  InterpolatorBase
 Base strategy class for interpolation functionality. More...
class  LinearInterpolator
class  ResponseAndFwdSensPoint
 Simple class to combine a response and it's forward sensitivity at a time point. More...
class  SimpleIntegrationControlStrategy
 Base class for strategy objects that control integration by selecting step sizes for a stepper. More...
class  SimpleIntegrator
 A very simple concrete subclass for IntegratorBase that allows just for simple fixed steps or variable steps. More...
class  SingleResidualModelEvaluator
 Decorator subclass for a steady-state version of a DAE for single-residual time stepper methods. More...
class  SingleResidualModelEvaluatorBase
 Base class mix-in interface for single-residual model evaluators. More...
class  SolverAcceptingStepperBase
 Mix-in interface all implicit stepper objects that accept a nonlinear solver to be used to compute the timestep. More...
class  StateAndForwardSensitivityModelEvaluator
 Combined State and Forward sensitivity transient ModelEvaluator subclass. More...
struct  StepControlInfo
 Simple strict to aggregate integration/stepper control information. More...
class  StepControlStrategyAcceptingStepperBase
 Mix-in interface for stepper objects that accept a step control strategy object to be used for evaluating steps and picking step-sizes & orders. More...
class  StepControlStrategyBase
 The member functions in the StepControlStrategyBase move you between these states in the following fashion:. More...
class  StepperAsModelEvaluator
 Concrete Thyra::ModelEvaluator subclass that takes a parameterized stepper and turns it into a model evaluator (p,t) ==> g. More...
class  StepperBase
 Base class for defining stepper functionality. More...
struct  StepStatus
  More...
class  TimeRange
 Represent a time range. More...
class  TimeStepNonlinearSolver
 Simple undampended Newton solver designed to solve time step equations in accurate times-tepping methods. More...

Namespaces

namespace  ForwardSensitivityIntegratorAsModelEvaluatorTypes
namespace  Exceptions

Enumerations

enum  BDFactionFlag
  More...
enum  AttemptedStepStatusFlag
 step control strategy interface to be used for evaluating steps and picking step-sizes & orders.. More...
enum  StepControlStrategyState
  More...
enum  StepSizeType
 Step type. More...
enum  EStepStatus { STEP_STATUS_UNINITIALIZED, STEP_STATUS_CONVERGED, STEP_STATUS_UNKNOWN }
  More...
enum  EStepLETStatus { STEP_LET_STATUS_PASSED, STEP_LET_STATUS_FAILED, STEP_LET_STATUS_UNKNOWN }
  More...
enum  EBreakPointType
  More...

Functions

template<class Scalar>
void dataStoreVectorToVector (const typename DataStore< Scalar >::DataStoreVector_t &ds, Array< Scalar > *time_vec, Array< Teuchos::RCP< const Thyra::VectorBase< Scalar > > > *x_vec, Array< Teuchos::RCP< const Thyra::VectorBase< Scalar > > > *xdot_vec, Array< typename Teuchos::ScalarTraits< Scalar >::magnitudeType > *accuracy_vec)
template<class Scalar>
void vectorToDataStoreVector (const Array< Scalar > &time_vec, const Array< Teuchos::RCP< const Thyra::VectorBase< Scalar > > > &x_vec, const Array< Teuchos::RCP< const Thyra::VectorBase< Scalar > > > &xdot_vec, const Array< typename Teuchos::ScalarTraits< Scalar >::magnitudeType > &accuracy_vec, typename DataStore< Scalar >::DataStoreVector_t *ds)
template<class Scalar>
void vectorToDataStoreList (const Array< Scalar > &time_vec, const Array< Teuchos::RCP< const Thyra::VectorBase< Scalar > > > &x_vec, const Array< Teuchos::RCP< const Thyra::VectorBase< Scalar > > > &xdot_vec, const Array< typename Teuchos::ScalarTraits< Scalar >::magnitudeType > &accuracy_vec, typename DataStore< Scalar >::DataStoreList_t *ds)
template<class Scalar>
void vectorToDataStoreList (const Array< Scalar > &time_vec, const Array< Teuchos::RCP< const Thyra::VectorBase< Scalar > > > &x_vec, const Array< Teuchos::RCP< const Thyra::VectorBase< Scalar > > > &xdot_vec, typename DataStore< Scalar >::DataStoreList_t *ds)
template<typename Scalar>
Teuchos::ScalarTraits< Scalar
>::magnitudeType 
log_norm_inf (const Thyra::VectorBase< Scalar > &x)
 Computs logarithmic infinity norm of a vector using ROpLogNormInf.
template<class Scalar>
void extractStateAndSens (const RCP< const Thyra::VectorBase< Scalar > > &x_bar, const RCP< const Thyra::VectorBase< Scalar > > &x_bar_dot, RCP< const Thyra::VectorBase< Scalar > > *x, RCP< const Thyra::MultiVectorBase< Scalar > > *S, RCP< const Thyra::VectorBase< Scalar > > *x_dot, RCP< const Thyra::MultiVectorBase< Scalar > > *S_dot)
 Extract the state and sensitivities from x_bar and x_bar_dot.
template<class Scalar>
void extractStateAndSens (const RCP< const Thyra::VectorBase< Scalar > > &x_bar, const RCP< const Thyra::VectorBase< Scalar > > &x_bar_dot, RCP< const Thyra::VectorBase< Scalar > > *x, RCP< const Thyra::MultiVectorBase< Scalar > > *S, RCP< const Thyra::VectorBase< Scalar > > *x_dot, RCP< const Thyra::MultiVectorBase< Scalar > > *S_dot)
 Extract the state and sensitivities from x_bar and x_bar_dot.
template<class Scalar>
RCP< ForwardSensitivityIntegratorAsModelEvaluator<
Scalar > > 
forwardSensitivityIntegratorAsModelEvaluator (const RCP< StepperBase< Scalar > > &stateStepper, const RCP< IntegratorBase< Scalar > > &stateIntegrator, const RCP< ForwardSensitivityStepper< Scalar > > &stateAndSensStepper, const RCP< IntegratorBase< Scalar > > &stateAndSensIntegrator, const Thyra::ModelEvaluatorBase::InArgs< Scalar > &stateAndSensInitCond, const Array< Scalar > &responseTimes, const Array< RCP< const Thyra::ModelEvaluator< Scalar > > > &responseFuncs, const Array< Thyra::ModelEvaluatorBase::InArgs< Scalar > > &responseFuncBasePoints, const ForwardSensitivityIntegratorAsModelEvaluatorTypes::EResponseType responseType)
 Nonmember constructor.
template<class Scalar>
void assertTimePointsAreSorted (const Array< Scalar > &time_vec)
template<class Scalar>
void assertNoTimePointsBeforeCurrentTimeRange (const InterpolationBufferBase< Scalar > &interpBuffer, const Array< Scalar > &time_vec, const int &startingTimePointIndex)
template<class Scalar>
void assertNoTimePointsInsideCurrentTimeRange (const InterpolationBufferBase< Scalar > &interpBuffer, const Array< Scalar > &time_vec)
template<class TimeType>
void selectPointsInTimeRange (Array< TimeType > *points_out, const Array< TimeType > &points_in, const TimeRange< TimeType > &range)
template<class TimeType>
void removePointsInTimeRange (Array< TimeType > *points_in, const TimeRange< TimeType > &range)
template<class Scalar>
bool getCurrentPoints (const InterpolationBufferBase< Scalar > &interpBuffer, const Array< Scalar > &time_vec, Array< RCP< const Thyra::VectorBase< Scalar > > > *x_vec, Array< RCP< const Thyra::VectorBase< Scalar > > > *xdot_vec, int *nextTimePointIndex_inout)
template<class Scalar>
void assertBaseInterpolatePreconditions (const typename DataStore< Scalar >::DataStoreVector_t &data_in, const Array< Scalar > &t_values, typename DataStore< Scalar >::DataStoreVector_t *data_out)
template<class Scalar>
std::ostream & operator<< (std::ostream &out, const StepControlInfo< Scalar > &stepCtrlInfo)
 
template<class Scalar>
RCP< StepperAsModelEvaluator<
Scalar > > 
stepperAsModelEvaluator (const RCP< StepperBase< Scalar > > &stepper, const RCP< IntegratorBase< Scalar > > &integrator, const Thyra::ModelEvaluatorBase::InArgs< Scalar > &initialCondition)
 Nonmember constructor.
template<class Scalar>
void restart (StepperBase< Scalar > *stepper)
 Restart a time stepper.
const char * toString (const StepSizeType stepSizeType)
 Convert StepSizeType to string.
const char * toString (const EStepStatus stepStatus)
 
const char * toString (const EStepLETStatus stepLETStatus)
 
const char * toString (const EBreakPointType breakPointType)
 
template<class Scalar>
std::ostream & operator<< (std::ostream &out_arg, const StepStatus< Scalar > &stepStatus)
 
template<class TimeType>
int compareTimeValues (const TimeType &t1, const TimeType &t2)
 Compare two times taking into account floating point errors.
std::string Rythmos_Version ()


Enumeration Type Documentation

enum Rythmos::BDFactionFlag

Definition at line 37 of file Rythmos_ImplicitBDFStepperStepControlDecl.hpp.

enum Rythmos::AttemptedStepStatusFlag

step control strategy interface to be used for evaluating steps and picking step-sizes & orders..

Definition at line 46 of file Rythmos_StepControlStrategyBase.hpp.

enum Rythmos::StepControlStrategyState

Definition at line 49 of file Rythmos_StepControlStrategyBase.hpp.

enum Rythmos::StepSizeType

Step type.

Definition at line 40 of file Rythmos_StepperSupportTypes.hpp.

enum Rythmos::EStepStatus

Enumerator:
STEP_STATUS_UNINITIALIZED  Stepper is uninitialized.
STEP_STATUS_CONVERGED  Nonlinear solver converged and local error test passed.
STEP_STATUS_UNKNOWN  Status is unknown.

Definition at line 62 of file Rythmos_StepperSupportTypes.hpp.

enum Rythmos::EStepLETStatus

Enumerator:
STEP_LET_STATUS_PASSED  The local truncation error test passed.
STEP_LET_STATUS_FAILED  The local truncation error test failed.
STEP_LET_STATUS_UNKNOWN  No local truncation error test was evaluated.

Definition at line 86 of file Rythmos_StepperSupportTypes.hpp.

enum Rythmos::EBreakPointType

Definition at line 110 of file Rythmos_StepperSupportTypes.hpp.


Function Documentation

template<typename Scalar>
Teuchos::ScalarTraits<Scalar>::magnitudeType Rythmos::log_norm_inf ( const Thyra::VectorBase< Scalar > &  x  ) 

Computs logarithmic infinity norm of a vector using ROpLogNormInf.

Definition at line 359 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.

template<class Scalar>
void Rythmos::extractStateAndSens ( const RCP< const Thyra::VectorBase< Scalar > > &  x_bar,
const RCP< const Thyra::VectorBase< Scalar > > &  x_bar_dot,
RCP< const Thyra::VectorBase< Scalar > > *  x,
RCP< const Thyra::MultiVectorBase< Scalar > > *  S,
RCP< const Thyra::VectorBase< Scalar > > *  x_dot,
RCP< const Thyra::MultiVectorBase< Scalar > > *  S_dot 
)

Extract the state and sensitivities from x_bar and x_bar_dot.

  x_bar = [ x ; s_bar ]

  x_bar_dot = [ x_dot; s_bar_dot ]

  s_bar = ..

  s_bar_dot = ...

 

Definition at line 78 of file Rythmos_extractStateAndSens.hpp.

template<class Scalar>
void Rythmos::extractStateAndSens ( const RCP< const Thyra::VectorBase< Scalar > > &  x_bar,
const RCP< const Thyra::VectorBase< Scalar > > &  x_bar_dot,
RCP< const Thyra::VectorBase< Scalar > > *  x,
RCP< const Thyra::MultiVectorBase< Scalar > > *  S,
RCP< const Thyra::VectorBase< Scalar > > *  x_dot,
RCP< const Thyra::MultiVectorBase< Scalar > > *  S_dot 
)

Extract the state and sensitivities from x_bar and x_bar_dot.

  x_bar = [ x ; s_bar ]

  x_bar_dot = [ x_dot; s_bar_dot ]

  s_bar = ..

  s_bar_dot = ...

 

Definition at line 78 of file Rythmos_extractStateAndSens.hpp.

template<class Scalar>
RCP<ForwardSensitivityIntegratorAsModelEvaluator<Scalar> > Rythmos::forwardSensitivityIntegratorAsModelEvaluator ( const RCP< StepperBase< Scalar > > &  stateStepper,
const RCP< IntegratorBase< Scalar > > &  stateIntegrator,
const RCP< ForwardSensitivityStepper< Scalar > > &  stateAndSensStepper,
const RCP< IntegratorBase< Scalar > > &  stateAndSensIntegrator,
const Thyra::ModelEvaluatorBase::InArgs< Scalar > &  stateAndSensInitCond,
const Array< Scalar > &  responseTimes,
const Array< RCP< const Thyra::ModelEvaluator< Scalar > > > &  responseFuncs,
const Array< Thyra::ModelEvaluatorBase::InArgs< Scalar > > &  responseFuncBasePoints,
const ForwardSensitivityIntegratorAsModelEvaluatorTypes::EResponseType  responseType 
)

Nonmember constructor.

Definition at line 332 of file Rythmos_ForwardSensitivityIntegratorAsModelEvaluator.hpp.

template<class Scalar>
std::ostream& Rythmos::operator<< ( std::ostream &  out,
const StepControlInfo< Scalar > &  stepCtrlInfo 
)

Definition at line 34 of file Rythmos_StepControlInfo.hpp.

template<class Scalar>
RCP<StepperAsModelEvaluator<Scalar> > Rythmos::stepperAsModelEvaluator ( const RCP< StepperBase< Scalar > > &  stepper,
const RCP< IntegratorBase< Scalar > > &  integrator,
const Thyra::ModelEvaluatorBase::InArgs< Scalar > &  initialCondition 
)

Nonmember constructor.

Definition at line 134 of file Rythmos_StepperAsModelEvaluator.hpp.

template<class Scalar>
void Rythmos::restart ( StepperBase< Scalar > *  stepper  ) 

Restart a time stepper.

This simple helper function just grabs the state out of the *stepper object and then resets it on itself as an initial condition. This is generally used to restart a stepper when passing over a breakpoint where the model is expected to be discontinuous in some way.

Definition at line 20 of file Rythmos_StepperHelpers.hpp.

const char* Rythmos::toString ( const StepSizeType  stepSizeType  )  [inline]

Convert StepSizeType to string.

Definition at line 45 of file Rythmos_StepperSupportTypes.hpp.

const char* Rythmos::toString ( const EStepStatus  stepStatus  )  [inline]

Definition at line 71 of file Rythmos_StepperSupportTypes.hpp.

const char* Rythmos::toString ( const EStepLETStatus  stepLETStatus  )  [inline]

Definition at line 95 of file Rythmos_StepperSupportTypes.hpp.

const char* Rythmos::toString ( const EBreakPointType  breakPointType  )  [inline]

Definition at line 118 of file Rythmos_StepperSupportTypes.hpp.

template<class Scalar>
std::ostream& Rythmos::operator<< ( std::ostream &  out_arg,
const StepStatus< Scalar > &  stepStatus 
)

Definition at line 170 of file Rythmos_StepperSupportTypes.hpp.

template<class TimeType>
int Rythmos::compareTimeValues ( const TimeType &  t1,
const TimeType &  t2 
)

Compare two times taking into account floating point errors.

Returns:
Return -1 if v1 <= v2, 0 if v1==v2 and +1 if v1 >= v2.
Note that this function compares t1 to t2 and not the other way around.

This function is designed to solve the problem where in:

 const TimeType timeStep = endTime - time;
 const TimeType updatedEndTime = time + timeStep;
 const bool isAtOrPastEndTime = ( updatedEndTime >= endTime );

the bool isAtOrPastEndTime may actually be false! This is especially a danger if IEEE floating point numerics are not being used (and there are many systems that do not for speed and other reasons).

Definition at line 60 of file Rythmos_TimeRange.hpp.


Generated on Tue Oct 20 12:46:08 2009 for Rythmos - Transient Integration for Differential Equations by doxygen 1.4.7