#include <Rythmos_ExplicitTaylorPolynomialStepper.hpp>
Inheritance diagram for Rythmos::ExplicitTaylorPolynomialStepper< Scalar >:

Public Types | |
| typedef Teuchos::ScalarTraits< Scalar >::magnitudeType | ScalarMag |
| Typename of magnitude of scalars. | |
Public Member Functions | |
| ExplicitTaylorPolynomialStepper () | |
| Constructor. | |
| ~ExplicitTaylorPolynomialStepper () | |
| Destructor. | |
| RCP< const Thyra::VectorSpaceBase< Scalar > > | get_x_space () const |
Return the space for x and x_dot. | |
| void | setModel (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &model) |
| Set model. | |
| Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > | getModel () const |
| | |
| Scalar | takeStep (Scalar dt, StepSizeType flag) |
Take a time step of magnitude dt. | |
| const StepStatus< Scalar > | getStepStatus () const |
| | |
| void | setParameterList (Teuchos::RCP< Teuchos::ParameterList > const ¶mList) |
| Redefined from Teuchos::ParameterListAcceptor . | |
| Teuchos::RCP< Teuchos::ParameterList > | getParameterList () |
| | |
| Teuchos::RCP< Teuchos::ParameterList > | unsetParameterList () |
| | |
| std::string | description () const |
| | |
| std::ostream & | describe (std::ostream &out, const Teuchos::EVerbosityLevel verbLevel, const std::string leadingIndent, const std::string indentSpacer) const |
| | |
| void | addPoints (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) |
| void | getPoints (const Array< Scalar > &time_vec, Array< Teuchos::RCP< const Thyra::VectorBase< Scalar > > > *x_vec, Array< Teuchos::RCP< const Thyra::VectorBase< Scalar > > > *xdot_vec, Array< ScalarMag > *accuracy_vec) const |
| Get values from buffer. | |
| void | setRange (const TimeRange< Scalar > &range, const InterpolationBufferBase< Scalar > &IB) |
| Fill data in from another interpolation buffer. | |
| TimeRange< Scalar > | getTimeRange () const |
| | |
| void | getNodes (Array< Scalar > *time_vec) const |
| Get interpolation nodes. | |
| void | removeNodes (Array< Scalar > &time_vec) |
| Remove interpolation nodes. | |
| int | getOrder () const |
| Get order of interpolation. | |
Let
be an ODE initial-value problem. This class implements a single time step of an explicit Taylor polynomial time integration method for computing numerical solutions to the IVP. The method consists of computing a local truncated Taylor series solution to the ODE (section Computing the Taylor Polynomial), estimating a step size within the radius of convergence of the Taylor series (section Computing a Step Size) and then summing the polynomial at that step to compute the next point in the numerical integration (section Summing the Polynomial). The algorithmic parameters to the method are controlled through the params argument to the constructor which are described in section Parameters.
be a power series solution to the IVP above. Then
can be expaned in a power series along the solution curve
:
where
By differentiating the power series for
to compute a power series for
and then comparing coefficients in the equation
we find the following recurrence relationship for the Taylor coefficients
:
where each coefficient
is a function only of
and can be efficiently computed using the Taylor polynomial mode of automatic differentation. This allows the Taylor coefficients to be iteratively computed starting with the initial point
up to some fixed degree
to yield a local truncated Taylor polynomial approximating the solution to the IVP.
in hand, a step size is chosen by estimating the truncation error in the polynomial solution and forcing this error to be less than some prescribed tolerance. Let
so
for
. Assume
for
as well, then for any
it can be shown that the truncation error is bounded by
A step size
is then given by
for some error tolerance
given an error of approximatly
.
computed,
is used as the next integration point where a new Taylor series is calculated. Local error per step can also be controlled by computing
. If this error is too large, the step size can be reduced to an appropriate size.
params argument to the constructor:
as described above.
Definition at line 140 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| typedef Teuchos::ScalarTraits<Scalar>::magnitudeType Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::ScalarMag |
Typename of magnitude of scalars.
Reimplemented from Rythmos::InterpolationBufferBase< Scalar >.
Definition at line 145 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::ExplicitTaylorPolynomialStepper | ( | ) |
| Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::~ExplicitTaylorPolynomialStepper | ( | ) |
| RCP< const Thyra::VectorSpaceBase< Scalar > > Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::get_x_space | ( | ) | const [virtual] |
Return the space for x and x_dot.
Implements Rythmos::InterpolationBufferBase< Scalar >.
Definition at line 710 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| void Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::setModel | ( | const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > & | model | ) | [virtual] |
Set model.
Implements Rythmos::StepperBase< Scalar >.
Definition at line 383 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::getModel | ( | ) | const [virtual] |
Implements Rythmos::StepperBase< Scalar >.
Definition at line 398 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| Scalar Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::takeStep | ( | Scalar | dt, | |
| StepSizeType | flag | |||
| ) | [virtual] |
Take a time step of magnitude dt.
Implements Rythmos::StepperBase< Scalar >.
Definition at line 405 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| const StepStatus< Scalar > Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::getStepStatus | ( | ) | const [virtual] |
Implements Rythmos::StepperBase< Scalar >.
Definition at line 513 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| void Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::setParameterList | ( | Teuchos::RCP< Teuchos::ParameterList > const & | paramList | ) | [virtual] |
Redefined from Teuchos::ParameterListAcceptor .
Implements Teuchos::ParameterListAcceptor.
Definition at line 529 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| Teuchos::RCP< Teuchos::ParameterList > Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::getParameterList | ( | ) | [virtual] |
Implements Teuchos::ParameterListAcceptor.
Definition at line 560 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| Teuchos::RCP< Teuchos::ParameterList > Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::unsetParameterList | ( | ) | [virtual] |
Implements Teuchos::ParameterListAcceptor.
Definition at line 567 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| std::string Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::description | ( | ) | const [virtual] |
Reimplemented from Teuchos::Describable.
Definition at line 575 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| std::ostream & Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::describe | ( | std::ostream & | out, | |
| const Teuchos::EVerbosityLevel | verbLevel, | |||
| const std::string | leadingIndent, | |||
| const std::string | indentSpacer | |||
| ) | const |
| void Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::addPoints | ( | 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 | |||
| ) | [virtual] |
Redefined from InterpolationBufferBase Add points to buffer
Implements Rythmos::InterpolationBufferBase< Scalar >.
Definition at line 617 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| void Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::getPoints | ( | const Array< Scalar > & | time_vec, | |
| Array< Teuchos::RCP< const Thyra::VectorBase< Scalar > > > * | x_vec, | |||
| Array< Teuchos::RCP< const Thyra::VectorBase< Scalar > > > * | xdot_vec, | |||
| Array< ScalarMag > * | accuracy_vec | |||
| ) | const [virtual] |
Get values from buffer.
Implements Rythmos::InterpolationBufferBase< Scalar >.
Definition at line 627 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| void Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::setRange | ( | const TimeRange< Scalar > & | range, | |
| const InterpolationBufferBase< Scalar > & | IB | |||
| ) |
Fill data in from another interpolation buffer.
| TimeRange< Scalar > Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::getTimeRange | ( | ) | const [virtual] |
Implements Rythmos::InterpolationBufferBase< Scalar >.
Definition at line 637 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| void Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::getNodes | ( | Array< Scalar > * | time_vec | ) | const [virtual] |
Get interpolation nodes.
Implements Rythmos::InterpolationBufferBase< Scalar >.
Definition at line 643 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| void Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::removeNodes | ( | Array< Scalar > & | time_vec | ) | [virtual] |
Remove interpolation nodes.
Implements Rythmos::InterpolationBufferBase< Scalar >.
Definition at line 649 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| int Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::getOrder | ( | ) | const [virtual] |
Get order of interpolation.
Implements Rythmos::InterpolationBufferBase< Scalar >.
Definition at line 656 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
1.4.7