I would like to make a Poincare map from a given 3D flow (Roessler attractor, in my example). My idea, as suggested by the tutorials, was to define a zero crossing event for each time the trajectory passes through the surface of section (x = 0, in my example), and then sample those events.
So, the script is working well, but I only get say, $n$ points. How can I get more points? I think the answer to this question is related to "how can I let the trajectory be computed for longer?", so that lead me to increase tdomain (for e.g. tdomain=[0, 100] provides far fewer points than tdomain=[0, 5000]). However, if I do tdomain=[0, 20000] instead of tdomain=[0, 5000], I still get the same number of points (capped at 320, for some reason...?).
Without checking the code in more detail, the answer is most probably
this: the tdomain is really supposed to be set only if you absolutely
need to constrain the possible end points of time for your model (e.g.
if there are singularities in your domain that you have to avoid).
Ideally, tdomain should be set once at the outset if you need it. If
you don't need it, don't set it: the default is [0, inf]. tdata is the
setting for the individual integration run. If tdata stays the same
size and tdomain gets bigger, you won't find any more points. So worry
about tdata, not tdomain. The only other possible thing it can be is
if you reach the max number of event points that can be stored. That
is a parameter maxevtpts set using the algparams dictionary. You can
inspect your Generator's algparams attribute to see what that is set
at, and increase it using the Gen's set() method if necessary.
If that turns out not to be the problem, let me know!
-Rob
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
What if my generator's algparams dictionary does not have a 'maxevpts' key by default? What does that mean? Is there some default value that is used?
Also, just to update you, I found that changing maxevpts does not seem to affect how many points I am getting, and I have the same problem with using tdata instead of tdomain. EDIT: this was due to a bug on my code (I wasn't passing arguments properly).
Could you clarify the difference between tdata vs. tdomain?
Brian
Last edit: Brian M 2015-04-01
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi all,
I would like to make a Poincare map from a given 3D flow (Roessler attractor, in my example). My idea, as suggested by the tutorials, was to define a zero crossing event for each time the trajectory passes through the surface of section (x = 0, in my example), and then sample those events.
So, the script is working well, but I only get say, $n$ points. How can I get more points? I think the answer to this question is related to "how can I let the trajectory be computed for longer?", so that lead me to increase tdomain (for e.g. tdomain=[0, 100] provides far fewer points than tdomain=[0, 5000]). However, if I do tdomain=[0, 20000] instead of tdomain=[0, 5000], I still get the same number of points (capped at 320, for some reason...?).
Why would this be the case?
Kind regards,
Brian
P.S. Here is my script
Hi Brian,
Without checking the code in more detail, the answer is most probably
this: the tdomain is really supposed to be set only if you absolutely
need to constrain the possible end points of time for your model (e.g.
if there are singularities in your domain that you have to avoid).
Ideally, tdomain should be set once at the outset if you need it. If
you don't need it, don't set it: the default is [0, inf]. tdata is the
setting for the individual integration run. If tdata stays the same
size and tdomain gets bigger, you won't find any more points. So worry
about tdata, not tdomain. The only other possible thing it can be is
if you reach the max number of event points that can be stored. That
is a parameter maxevtpts set using the algparams dictionary. You can
inspect your Generator's algparams attribute to see what that is set
at, and increase it using the Gen's set() method if necessary.
If that turns out not to be the problem, let me know!
-Rob
Hi Rob,
Thanks for the tips!
What if my generator's algparams dictionary does not have a 'maxevpts' key by default? What does that mean? Is there some default value that is used?
Also, just to update you, I found that changing maxevpts does not seem to affect how many points I am getting, and I have the same problem with using tdata instead of tdomain. EDIT: this was due to a bug on my code (I wasn't passing arguments properly).
Could you clarify the difference between tdata vs. tdomain?
Brian
Last edit: Brian M 2015-04-01
Introspect the Gen object's alg params attribute. It does have a
default for all permissible values.