Test trajectory not created

Help
Anonymous
2012-07-30
2013-11-04

  • Anonymous
    2012-07-30

    Hi,

    I'm running into a curious problem. I have a HybridModel, which in principle works just fine. However, I need to compare a number of models, so I put each model it its own package, with an interface class for easy access. I've done this quite straightforward by cutting up the original (working) code and distribute it over a number of functions.

    Apparently, this was a too naive approach, since it doesn't work anymore ;-) I'm facing the following error:

    Error in Generator: SingleSupport
    Model interface compute_traj method for model 'SingleSupport' failed
    <type 'exceptions.ValueError'> setting an array element with a sequence.
    Traceback (most recent call last):
      [...]
      File "/Users/ludo/Devel/python/PyDSTool/Model.py", line 2907, in compute
        force=force_overwrite)
      File "/Users/ludo/Devel/python/PyDSTool/Model.py", line 1166, in renameTraj
        raise ValueError('No such trajectory name %s'%trajname)
    ValueError: No such trajectory name test_iface_traj
    

    I've looked through the files Model.py and MProject.py trying to see what is happening, but honestly, I have no clue. Any help would be much appreciated.

     

  • Anonymous
    2012-07-30

    My bad, the error was (of course) caused by my code and not PyDSTool. The traceback send me in the wrong direction.

    My apologies :)

     
  • lukas
    lukas
    2012-08-06

    Ludo,

    I am getting exactly the same error message from my code and cannot figure out what I've done wrong. What was the error that caused this in your program so that I know what to look for?

     

  • Anonymous
    2012-08-07

    Hi lukstra,

    I use SymPy to generate the differential equations. SymPy unfortunately keeps matrix expressions as a matrix, even though it evaluates to scalar. I had an expression of the form

    K = 0.5 * v^T * M * v
    

    (v a vector, M a matrix), and had used

    varspec = str(K)
    

    This caused the error, because

    str(K) = '[value_of_K]'
    

    (so with square brackets). To resolve it, I had to write

    varspec = str(K[0])
    

    To make a long story short: check the expressions for you differential equations and see if there's something in there that may look to Python as an array (i.e., square brackets).