CAPD DynSys Library
5.2.0
|
The CAPD library provides mechanisms for easy computation of Poincare maps their derivatives. In general the Poincare map is defined by specifying
In the CAPD a Poincare map is seen as a function
rather than a mapping from section to section. Initial point does not need to be on Poincare section . We can compute intersection point of any trajectory with Poincare section.
We will give an overview on Poincare maps for both cases of rigorous and nonrigorous computations as they differ in details.
Poincare section is an object of class that implements interface defined in class AbstractSection. For user convenience we defined three classes that implement interface AbstractSection. Clearly the user can implement own class if necessary.
For user convenience we defined the following types for computation in double D, long double LD, multiple precision Mp and in interval arithmetics I, MpI
In the examples below we will show how to use each of these types of Poincare sections. Thus, we will use type NonlinearSection even if the section will be linear - just to demonstrate how to define it.
Given an ODE solver (see section ODEs - nonrigorous methods)
and Poincare section
we define an instance of Poincare map by constructor call
The last argument specifies crossing direction of Poincare section. This is an enumeration type with three possible values
crossingDirection
of the constructor can be skipped. Its default value is capd::poincare::Both
.In similar way one can define an instance of IPoincareMap for rigorous computation of Poincare maps.
vectorField, solver, section
must exists during usage of object pm
as pm
holds references to them. In particular this code is incorrect