Menu

Making a Poincare map from a flow: how to increase the number of events that are recorded?

Help
Brian M
2015-04-01
2015-04-02
  • Brian M

    Brian M - 2015-04-01

    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

     
    • Rob Clewley

      Rob Clewley - 2015-04-01

      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

       
  • Brian M

    Brian M - 2015-04-01

    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
    • Rob Clewley

      Rob Clewley - 2015-04-02

      Introspect the Gen object's alg params attribute. It does have a
      default for all permissible values.

       

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.