|
Rythmos - Transient Integration for Differential Equations Version of the Day
|
Implementation of Rythmos::Stepper for explicit Taylor polynomial time integration of ODEs. More...
#include <Rythmos_ExplicitTaylorPolynomialStepper.hpp>

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 RCP< const Thyra::ModelEvaluator< Scalar > > &model) |
| Set model. | |
| void | setNonconstModel (const RCP< Thyra::ModelEvaluator< Scalar > > &model) |
| Set model. | |
| RCP< const Thyra::ModelEvaluator< Scalar > > | getModel () const |
| | |
| RCP< Thyra::ModelEvaluator < Scalar > > | getNonconstModel () |
| | |
| void | setInitialCondition (const Thyra::ModelEvaluatorBase::InArgs< Scalar > &initialCondition) |
| | |
| Thyra::ModelEvaluatorBase::InArgs < Scalar > | getInitialCondition () const |
| | |
| Scalar | takeStep (Scalar dt, StepSizeType flag) |
Take a time step of magnitude dt. | |
| const StepStatus< Scalar > | getStepStatus () const |
| | |
| void | setParameterList (RCP< Teuchos::ParameterList > const ¶mList) |
| Redefined from Teuchos::ParameterListAcceptor. | |
| RCP< Teuchos::ParameterList > | getNonconstParameterList () |
| | |
| RCP< Teuchos::ParameterList > | unsetParameterList () |
| | |
| RCP< const Teuchos::ParameterList > | getValidParameters () const |
| | |
| std::string | description () const |
| | |
| void | describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const |
| | |
| void | addPoints (const Array< Scalar > &time_vec, const Array< RCP< const Thyra::VectorBase< Scalar > > > &x_vec, const Array< RCP< const Thyra::VectorBase< Scalar > > > &xdot_vec) |
| void | getPoints (const Array< Scalar > &time_vec, Array< RCP< const Thyra::VectorBase< Scalar > > > *x_vec, Array< 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. | |
Implementation of Rythmos::Stepper for explicit Taylor polynomial time integration of ODEs.
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.
Let
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.
With the truncated Taylor polynomial solution
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
.
With a step size
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.
This method recognizes the following algorithmic parameters that can be set in the params argument to the constructor:
as described above. Definition at line 163 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 168 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::ExplicitTaylorPolynomialStepper | ( | ) |
Constructor.
Definition at line 366 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::~ExplicitTaylorPolynomialStepper | ( | ) |
Destructor.
Definition at line 374 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| 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 865 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| void Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::setModel | ( | const RCP< const Thyra::ModelEvaluator< Scalar > > & | model | ) | [virtual] |
Set model.
Implements Rythmos::StepperBase< Scalar >.
Definition at line 408 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| void Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::setNonconstModel | ( | const RCP< Thyra::ModelEvaluator< Scalar > > & | model | ) | [virtual] |
Set model.
Implements Rythmos::StepperBase< Scalar >.
Definition at line 421 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| RCP< const Thyra::ModelEvaluator< Scalar > > Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::getModel | ( | ) | const [virtual] |
Implements Rythmos::StepperBase< Scalar >.
Definition at line 431 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| RCP< Thyra::ModelEvaluator< Scalar > > Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::getNonconstModel | ( | ) | [virtual] |
Implements Rythmos::StepperBase< Scalar >.
Definition at line 439 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| void Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::setInitialCondition | ( | const Thyra::ModelEvaluatorBase::InArgs< Scalar > & | initialCondition | ) | [virtual] |
Implements Rythmos::StepperBase< Scalar >.
Definition at line 446 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| Thyra::ModelEvaluatorBase::InArgs< Scalar > Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::getInitialCondition | ( | ) | const [virtual] |
Implements Rythmos::StepperBase< Scalar >.
Definition at line 469 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 477 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| const StepStatus< Scalar > Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::getStepStatus | ( | ) | const [virtual] |
Implements Rythmos::StepperBase< Scalar >.
Definition at line 595 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| void Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::setParameterList | ( | RCP< Teuchos::ParameterList > const & | paramList | ) |
Redefined from Teuchos::ParameterListAcceptor.
Definition at line 628 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| RCP< Teuchos::ParameterList > Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::getNonconstParameterList | ( | ) |
Definition at line 663 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| RCP< Teuchos::ParameterList > Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::unsetParameterList | ( | ) |
Definition at line 671 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| RCP< const Teuchos::ParameterList > Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::getValidParameters | ( | ) | const |
Definition at line 681 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| std::string Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::description | ( | ) | const |
Definition at line 703 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| void Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::describe | ( | Teuchos::FancyOStream & | out, |
| const Teuchos::EVerbosityLevel | verbLevel = Teuchos::Describable::verbLevel_default |
||
| ) | const |
Definition at line 711 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| void Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::addPoints | ( | const Array< Scalar > & | time_vec, |
| const Array< RCP< const Thyra::VectorBase< Scalar > > > & | x_vec, | ||
| const Array< RCP< const Thyra::VectorBase< Scalar > > > & | xdot_vec | ||
| ) | [virtual] |
Redefined from InterpolationBufferBase Add points to buffer
Implements Rythmos::InterpolationBufferBase< Scalar >.
Definition at line 743 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| void Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::getPoints | ( | const Array< Scalar > & | time_vec, |
| Array< RCP< const Thyra::VectorBase< Scalar > > > * | x_vec, | ||
| Array< RCP< const Thyra::VectorBase< Scalar > > > * | xdot_vec, | ||
| Array< ScalarMag > * | accuracy_vec | ||
| ) | const [virtual] |
Get values from buffer.
Implements Rythmos::InterpolationBufferBase< Scalar >.
Definition at line 754 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 773 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 784 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 800 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
| int Rythmos::ExplicitTaylorPolynomialStepper< Scalar >::getOrder | ( | ) | const [virtual] |
Get order of interpolation.
Implements Rythmos::InterpolationBufferBase< Scalar >.
Definition at line 807 of file Rythmos_ExplicitTaylorPolynomialStepper.hpp.
1.7.4