The Conley-Morse Graphs Software
|
This class defines a map for the nonlinear density dependent overcompensatory Leslie population model. More...
#include <odetimet.h>
Public Member Functions | |
MapOdeTimeT (const std::string &formula, int order, double step, int n) | |
The constructor which takes the formula for the ODE in the format used in the CAPD library. More... | |
~MapOdeTimeT () | |
The destructor. More... | |
void | setParam (const double *left, const double *right, int n) |
Sets the parameters to the given intervals defined by their left and right coordinates. More... | |
void | compute (const IntervalVectorType &x, RectSetType &y, int dim, const spcCoord *coord, int subdiv) const |
Computes a rectangular set that is an outer enclosure of the image of the given box. More... | |
void | setBoundingBox (const double *left, const double *right, int dim, int stepsBetweenChecks) |
Sets a bounding box for the area of interest. More... | |
void | setDefaultBoundingBox () |
Sets the bounding box to the default one, as defined when setting the phase space. More... | |
bool | adjust (bool successful, int subdiv) |
Adjusts parameters if necessary after a successful computation or after an unsuccessful computation of the graph of the map at a specific subdivision depth. More... | |
std::string | getOptInfo () const |
Gets a single line of information on optimization of the computation of the map, so that it can be used by maps created for the same and nearby parameter values. More... | |
void | useOptInfo (const std::string &info) |
Uses a prevously saved line of information on optimization of the computation of the map for the same or nearby parameter values. More... | |
void | saveInternals (chomp::multiwork::mwData &data) const |
Saves the internal parameters and other data of the map to the mwData structure. More... | |
void | loadInternals (chomp::multiwork::mwData &data) |
Retrieves the internal paramters and other data of the map from the mwData structure. More... | |
double | getTimeStep (int subdiv) const |
Returns an approximation of the currently recommended integration time t for the time-t map at the given subdivision depth. More... | |
Public Member Functions inherited from MapTight | |
MapTight () | |
The default constructor of an object which describes a map. More... | |
~MapTight () | |
The destructor of an object which describe a map. More... | |
void | compute (const double *xleft, const double *xright, double *yleft, double *yright, int dim, const spcCoord *coord, int subdiv) const |
Computes an interval bounding box for the image of a given box. More... | |
virtual void | compute (const IntervalVectorType &x, RectSetType &y, int dim, const spcCoord *coord, int subdiv) const =0 |
Computes a rectangular set that is an outer enclosure of the image of the given box. More... | |
Public Member Functions inherited from MapType | |
MapType () | |
The default constructor of an object which describes a map. More... | |
virtual | ~MapType () |
The destructor of an object which describe a map. More... | |
virtual void | setParam (const double *left, const double *right, int n) |
Sets the parameters to the given intervals defined by their left and right coordinates. More... | |
const double & | getLeftParam (int n) const |
Returns the left value of the given parameter. More... | |
const double & | getRightParam (int n) const |
Returns the right value of the given parameter. More... | |
virtual void | compute (const double *xleft, const double *xright, double *yleft, double *yright, int dim, const spcCoord *coord, int subdiv) const =0 |
Computes the image of a box whose left and right coordinates are given. More... | |
void | operator() (const IntervalType *x, IntervalType *y, int dim, const spcCoord *coord, int subdiv) const |
An interface to the function 'compute' based on intervals. More... | |
bool | adjust (bool successful, int subdiv) |
Adjusts parameters if necessary after a successful computation or after an unsuccessful computation of the graph of the map at a specific subdivision level. More... | |
std::string | getOptInfo () const |
Gets a single line of information on optimization of the computation of the map, so that it can be used by maps created for the same and nearby parameter values. More... | |
void | useOptInfo (const std::string &info) |
Uses a prevously saved line of information on optimization of the computation of the map for the same or nearby parameter values. More... | |
void | saveInternals (chomp::multiwork::mwData &data) const |
Saves the internal parameters and other data of the map to the mwData structure. More... | |
void | loadInternals (chomp::multiwork::mwData &data) |
Retrieves the internal paramters and other data of the map from the mwData structure. More... | |
virtual double | getTimeStep (int subdiv) const |
Returns the time step, which is 1 for a map, or the time t of integration in case of a time-t map of a flow. More... | |
virtual std::string | name () const |
Returns the name of the map. More... | |
Static Public Member Functions | |
template<class Array1 , class Array2 > | |
static void | setPhaseSpace (const Array1 &offset, const Array2 &width, int dim, int subdivDepth, int stepsBetweenChecks=2) |
Sets the phase space for an automatic generation of bounding boxes. More... | |
Protected Attributes | |
double * | boundingBox |
A bounding box for the area where the trajectories are computed. More... | |
int | boundingBoxDim |
The dimension of the bounding box. More... | |
Private Types | |
typedef capd::IMatrix | IntervalMatrixType |
The interval matrix type. More... | |
typedef capd::IMap | IntervalMapType |
The type of a map to be used for the Taylor method. More... | |
typedef capd::dynsys::Solver< IntervalMapType > | TaylorType |
The type of fixed step control. More... | |
Private Member Functions | |
MapOdeTimeT (const MapOdeTimeT &) | |
The copy constructor should not be used. More... | |
MapOdeTimeT & | operator= (const MapOdeTimeT &) |
The assignment operator should not be used. More... | |
bool | checkOutside (double *x, int dim) const |
Verifies if the given point is outside the bounding box set with the method "setBoundingBox". More... | |
bool | checkOutside (IntervalVectorType &v, int dim) const |
A version of the checkOutside procedure for interval vectors. More... | |
bool | checkOutside (double *left, double *right, int dim) const |
Verifies if the given interval vector is completely outside the bounding box set with the method "setBoundingBox". More... | |
void | iterateLohnerSet (RectSetType &lohnerSet, TaylorType &theTaylorMethod, int steps, int dim) const |
Iterates the given Lohner set, using the Taylor method objects. More... | |
Private Attributes | |
std::string | mapFormula |
The formula for the map in the text format used in CAPD. More... | |
OdeIntegrParam | odeIntegrParam |
An object for adjusting ODE integration parameters. More... | |
IntervalMapType * | theMap |
The map object to be used in the Taylor method object. More... | |
int | checkEvery |
The number of steps after which the box should be checked if it is still contained in the bounding box. More... | |
long | integrations |
The numbers of successful integrations. More... | |
Static Private Attributes | |
static std::vector< double > | defaultBoundingBox |
The default bounding box to be used if no bounding box is set. More... | |
static int | defaultCheckEvery = 2 |
The default number of steps to check the bounding box. More... | |
This class defines a map for the nonlinear density dependent overcompensatory Leslie population model.
The interpretation of parameters depends on the dimension.
Definition at line 81 of file odetimet.h.
|
private |
The type of a map to be used for the Taylor method.
Definition at line 175 of file odetimet.h.
|
private |
The interval matrix type.
Definition at line 172 of file odetimet.h.
|
private |
|
inline |
The constructor which takes the formula for the ODE in the format used in the CAPD library.
The names of parameters in the formula must be "pa", "pb", etc. The order of the Taylor method to use must be given (e.g. 2), the integration step size, and the number of steps. The total translation in the flow equals step * n. Note: The step should be a representable number (for example, a multiple of a power of 2, like 3.0/256).
Definition at line 272 of file odetimet.h.
References mapFormula, resetRounding(), setDefaultBoundingBox(), and testIntervals().
|
inline |
The destructor.
Definition at line 342 of file odetimet.h.
References boundingBox, integrations, resetRounding(), and theMap.
|
private |
The copy constructor should not be used.
|
inline |
Adjusts parameters if necessary after a successful computation or after an unsuccessful computation of the graph of the map at a specific subdivision depth.
Returns true iff it is necessary to repeat the computation.
Definition at line 646 of file odetimet.h.
References adjust(), and odeIntegrParam.
Referenced by adjust().
|
inlineprivate |
Verifies if the given interval vector is completely outside the bounding box set with the method "setBoundingBox".
Returns true if the bounding box was set, its dimension conforms to the dimension of the vector, and the interval vector is outside the interior of the box; in this case the vector is projected onto the hyperplane containing the corresponding face of the bounding box. Otherwise returns false.
Definition at line 593 of file odetimet.h.
References boundingBox, and boundingBoxDim.
|
inlineprivate |
Verifies if the given point is outside the bounding box set with the method "setBoundingBox".
Returns true if the bounding box was set, its dimension conforms to the dimension of the vector, and the point is outside the box (weak inequality); in this case the point is projected onto the hyperplane containing the corresponding face of the bounding box. Otherwise returns false.
Definition at line 567 of file odetimet.h.
References boundingBox, and boundingBoxDim.
Referenced by iterateLohnerSet().
|
inlineprivate |
A version of the checkOutside procedure for interval vectors.
Definition at line 620 of file odetimet.h.
References boundingBox, and boundingBoxDim.
|
inlinevirtual |
Computes a rectangular set that is an outer enclosure of the image of the given box.
Implements MapTight.
Definition at line 436 of file odetimet.h.
References integrations, iterateLohnerSet(), odeIntegrParam, resetRounding(), and theMap.
|
inline |
Gets a single line of information on optimization of the computation of the map, so that it can be used by maps created for the same and nearby parameter values.
Definition at line 651 of file odetimet.h.
References odeIntegrParam.
|
inlinevirtual |
Returns an approximation of the currently recommended integration time t for the time-t map at the given subdivision depth.
Reimplemented from MapType.
Definition at line 684 of file odetimet.h.
References odeIntegrParam.
|
inlineprivate |
Iterates the given Lohner set, using the Taylor method objects.
Definition at line 414 of file odetimet.h.
References checkEvery, and checkOutside().
Referenced by compute().
|
inline |
Retrieves the internal paramters and other data of the map from the mwData structure.
Definition at line 673 of file odetimet.h.
References MapType::loadInternals(), and odeIntegrParam.
|
private |
The assignment operator should not be used.
|
inline |
Saves the internal parameters and other data of the map to the mwData structure.
Definition at line 662 of file odetimet.h.
References odeIntegrParam, and MapType::saveInternals().
|
inline |
Sets a bounding box for the area of interest.
Every time the provided number of itereates is made, the iterated set is verified whether it is contained in the bounding box. If it is completely outside then it is projected to the boundary of the box and the iterations are halted.
Definition at line 513 of file odetimet.h.
References boundingBox, boundingBoxDim, and checkEvery.
Referenced by setDefaultBoundingBox().
|
inline |
Sets the bounding box to the default one, as defined when setting the phase space.
Definition at line 250 of file odetimet.h.
References defaultBoundingBox, defaultCheckEvery, and setBoundingBox().
Referenced by MapOdeTimeT().
|
inlinevirtual |
Sets the parameters to the given intervals defined by their left and right coordinates.
This function actually calls the original function from the master class, and also resets the Taylor class iterator.
Reimplemented from MapType.
Definition at line 305 of file odetimet.h.
References mapFormula, odeIntegrParam, resetRounding(), MapType::setParam(), setParam(), and theMap.
Referenced by setParam().
|
inlinestatic |
Sets the phase space for an automatic generation of bounding boxes.
Definition at line 536 of file odetimet.h.
References defaultBoundingBox, and defaultCheckEvery.
|
inline |
Uses a prevously saved line of information on optimization of the computation of the map for the same or nearby parameter values.
The map object may be fed with several lines and should interprete them to set up its optimization parameters.
Definition at line 656 of file odetimet.h.
References odeIntegrParam.
|
protected |
A bounding box for the area where the trajectories are computed.
If an iterated set gets outside the given ranges of coordinates then it is projected to the boundary of this box and the iterating process is halted. The array contains left1, right1, left2, right2, etc.
Definition at line 165 of file odetimet.h.
Referenced by checkOutside(), MapOdeApprox::fadeVectorField(), setBoundingBox(), and ~MapOdeTimeT().
|
protected |
The dimension of the bounding box.
Definition at line 168 of file odetimet.h.
Referenced by checkOutside(), MapOdeApprox::fadeVectorField(), and setBoundingBox().
|
private |
The number of steps after which the box should be checked if it is still contained in the bounding box.
Definition at line 207 of file odetimet.h.
Referenced by iterateLohnerSet(), and setBoundingBox().
|
staticprivate |
The default bounding box to be used if no bounding box is set.
Definition at line 203 of file odetimet.h.
Referenced by setDefaultBoundingBox(), and setPhaseSpace().
|
staticprivate |
The default number of steps to check the bounding box.
Definition at line 210 of file odetimet.h.
Referenced by setDefaultBoundingBox(), and setPhaseSpace().
|
mutableprivate |
The numbers of successful integrations.
Definition at line 244 of file odetimet.h.
Referenced by compute(), and ~MapOdeTimeT().
|
private |
The formula for the map in the text format used in CAPD.
Definition at line 194 of file odetimet.h.
Referenced by MapOdeTimeT(), and setParam().
|
mutableprivate |
An object for adjusting ODE integration parameters.
Definition at line 197 of file odetimet.h.
Referenced by adjust(), compute(), getOptInfo(), getTimeStep(), loadInternals(), saveInternals(), setParam(), and useOptInfo().
|
private |
The map object to be used in the Taylor method object.
Definition at line 200 of file odetimet.h.
Referenced by compute(), setParam(), and ~MapOdeTimeT().