You can subscribe to this list here.
2007 
_{Jan}

_{Feb}
(2) 
_{Mar}

_{Apr}

_{May}

_{Jun}

_{Jul}
(1) 
_{Aug}

_{Sep}

_{Oct}

_{Nov}

_{Dec}


2008 
_{Jan}

_{Feb}

_{Mar}

_{Apr}

_{May}
(2) 
_{Jun}

_{Jul}

_{Aug}

_{Sep}

_{Oct}

_{Nov}

_{Dec}

2009 
_{Jan}

_{Feb}

_{Mar}

_{Apr}

_{May}

_{Jun}

_{Jul}

_{Aug}

_{Sep}

_{Oct}

_{Nov}

_{Dec}
(1) 
2011 
_{Jan}
(3) 
_{Feb}

_{Mar}

_{Apr}
(2) 
_{May}

_{Jun}

_{Jul}

_{Aug}

_{Sep}

_{Oct}

_{Nov}

_{Dec}

2012 
_{Jan}

_{Feb}

_{Mar}

_{Apr}

_{May}
(10) 
_{Jun}

_{Jul}

_{Aug}

_{Sep}

_{Oct}

_{Nov}

_{Dec}

2013 
_{Jan}

_{Feb}
(2) 
_{Mar}
(3) 
_{Apr}

_{May}

_{Jun}

_{Jul}

_{Aug}

_{Sep}

_{Oct}

_{Nov}

_{Dec}

2014 
_{Jan}

_{Feb}

_{Mar}

_{Apr}

_{May}

_{Jun}

_{Jul}

_{Aug}

_{Sep}

_{Oct}

_{Nov}

_{Dec}
(1) 
2015 
_{Jan}

_{Feb}
(1) 
_{Mar}

_{Apr}

_{May}

_{Jun}

_{Jul}

_{Aug}

_{Sep}

_{Oct}

_{Nov}

_{Dec}

From: Rob Clewley <rob.clewley@gm...>  20150209 20:12:38

Dear PyDSTool users, The INCF is sponsoring two Google Summer of Code projects this year that will directly benefit PyDSTool. Please take a look and forward to anyone who might be interested in participating. http://incf.org/gsoc/2015/proposals/#spanspannbspspanspanspanneurosciencemodelexplorationanddevelopmenttoolsforpydstoolspan http://www.googlemelange.com/gsoc/homepage/google/gsoc2015 Thanks, Rob  Robert Clewley, Ph.D. Adjunct Professor Neuroscience Institute and Department of Mathematics and Statistics Georgia State University http://neuroscience.gsu.edu/rclewley.html Ben Franklin Academy http://www.benfranklinacademy.org/ 
From: Rob Clewley <rob.clewley@gm...>  20141204 16:12:57

The primary purpose of this release is to be fully compatible with Python 3.3+ and 2.62.7 (further support of 2.6 has been dropped), and also better support for 64bit systems. For the first time, it uses a fullyautomatic installer and is available on PyPI: https://pypi.python.org/pypi?:action=display&name=PyDSTool Bleeding edge versions and the latest full release can be found at https://github.com/robclewley/pydstool with a mirror of releases at Sourceforge. Installation instructions are provided in the README. The majority of these developments are due to the hard work of Vladimir Zakharov in Moscow, which is greatly appreciated. As usual, there are also many minor fixes and improvements included in this version. Details are given in the github history. Please continue to use the sourceforge site for user help queries and discussion, while the github site can be used if you want to contribute to code development directly. Contributions are very welcome! Please let us know if you have any comments or problems with installation or use. Rob 
From: Juan Pablo Carbajal <juanpablo.carbajal@ug...>  20130313 22:53:19

Hi, I manage to get my hack in by printing to the C code only the nonzero elements. The new code for FuncSpec is (between lines 1690 and 1699) # C integrators expect columnmajor matrices for col in range(n): for row in range(m): try: if specdict[specvars[row]][col] != "0" and specdict[specvars[row]][col] != "0.0": ##Print only nonzero elements body_processed += "f_[" + str(col) + "][" + str(row) \ + "] = " + specdict[specvars[row]][col] + ";\n" except KeyError: raise ValueError("Mass matrix should be %sx%s"%(m,n)) The new compilation times are rows of matrix, compilation time, ODEsystem constructor time, number of equations 3 2.3 0.3 37 6 2.9 5.0 181 12 6.4 98.8 793 So now the bottle neck is in the constructor of the generator. I see a lot of dictionary time which I guess corresponds to the entries of the zero rows of the mass matrix. A solution would be to not make entry for zero rows, but I guess this will brake all the code. Is anybody interested in helping with the implementation of fast assembly and C code compilation for the case of sparse and constant mass matrix? Thank you The only problem with this is that all the other elements of f_ are not set to zero. Where is the declaration and initialization of the **double pointer that is passed to the massMatrix function? On Wed, Mar 13, 2013 at 10:41 PM, Juan Pablo Carbajal <juanpablo.carbajal@...> wrote: > Hello, > > When a DAE is defined with a constant mass matrix the C code generated > has one line per element in the matrix. This causes very long > compilation times for big matrices > number of rows in massmatrix, size of ccode (KB), size of .so (KB), > time to compile (seconds) > 3 33 963 2 > 4 102 1100 4 > 5 265 1400 12 > 6 591 1800 58 > 7 1200 2400 238 > 8 2100 3200 831 > When replaced with a nested for loop the compilation time for rows==7 > goes down to 4 seconds. > > I tried to improve FuncSpec to print a for loop fr the case of > constant matrix, but I can't cause the for loop is parsed as a macro > by QuantSpec. > > Is there a way to prevent enumeration of the mass matrix and just get > code of the kind > > # C integrators expect columnmajor matrices > body_processed += "unsigned int i,j;\n" + \ > "for (i=0;i<" + str(n) + ";i++)\n" + \ > "\tfor (j=0;j<" + str(m) + ";j++)\n" + \ > "\t\t f_[i][j] = 0;\n\n" > for col in range(n): > for row in range(m): > try: > if specdict[specvars[row]][col]: > body_processed += "f_[" + str(col) + "][" + str(row) \ > + "] = " + > specdict[specvars[row]][col] + ";\n" > > (this was my attemp in FuncSpec.py line 1688) > > Thanks > >  >  > Dr. sc. nat. Juan Pablo Carbajal > Reservoir Computing Lab > Department of Electronics and Information Systems (ELIS) > Ghent University > Sint Pietersnieuwstraat 41 > 9000 Ghent > Belgium > web: http://users.elis.ugent.be/~jcarbaja/   Dr. sc. nat. Juan Pablo Carbajal Reservoir Computing Lab Department of Electronics and Information Systems (ELIS) Ghent University Sint Pietersnieuwstraat 41 9000 Ghent Belgium web: http://users.elis.ugent.be/~jcarbaja/ 
From: Juan Pablo Carbajal <juanpablo.carbajal@ug...>  20130313 21:41:36

Hello, When a DAE is defined with a constant mass matrix the C code generated has one line per element in the matrix. This causes very long compilation times for big matrices number of rows in massmatrix, size of ccode (KB), size of .so (KB), time to compile (seconds) 3 33 963 2 4 102 1100 4 5 265 1400 12 6 591 1800 58 7 1200 2400 238 8 2100 3200 831 When replaced with a nested for loop the compilation time for rows==7 goes down to 4 seconds. I tried to improve FuncSpec to print a for loop fr the case of constant matrix, but I can't cause the for loop is parsed as a macro by QuantSpec. Is there a way to prevent enumeration of the mass matrix and just get code of the kind # C integrators expect columnmajor matrices body_processed += "unsigned int i,j;\n" + \ "for (i=0;i<" + str(n) + ";i++)\n" + \ "\tfor (j=0;j<" + str(m) + ";j++)\n" + \ "\t\t f_[i][j] = 0;\n\n" for col in range(n): for row in range(m): try: if specdict[specvars[row]][col]: body_processed += "f_[" + str(col) + "][" + str(row) \ + "] = " + specdict[specvars[row]][col] + ";\n" (this was my attemp in FuncSpec.py line 1688) Thanks   Dr. sc. nat. Juan Pablo Carbajal Reservoir Computing Lab Department of Electronics and Information Systems (ELIS) Ghent University Sint Pietersnieuwstraat 41 9000 Ghent Belgium web: http://users.elis.ugent.be/~jcarbaja/ 
From: SHIHUI GUO <sguo@bo...>  20130311 12:03:34

Hi, I understand that it's able to setup an ode function like this: ================ DSargs.pars = { 'rou': 1, 'omega': 5, 'sigma': 1, 'convrate': 10} DSargs.varspecs = {'y': 'convrate*((y*y+dy*dy)/(rou*rou)sigma)*y  omega*dy', 'dy': 'omega*y  convrate*((y*y+dy*dy)/(rou*rou)sigma)*dy' } ================ What if the function is more complex and needs to define by a separate function, rather than a string? Thanks. Shihui  *  * SHIHUI GUO National Center for Computer Animation Bournemouth University United Kingdom BU is a Disability Two Ticks Employer and has signed up to the Mindful Employer charter. Information about the accessibility of University buildings can be found on the BU DisabledGo webpages [ http://www.disabledgo.com/en/org/bournemouthuniversity ] This email is intended only for the person to whom it is addressed and may contain confidential information. If you have received this email in error, please notify the sender and delete this email, which must not be copied, distributed or disclosed to any other person. Any views or opinions presented are solely those of the author and do not necessarily represent those of Bournemouth University or its subsidiary companies. Nor can any contract be formed on behalf of the University or its subsidiary companies via email.  This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. 
From: Rob Clewley <rob.clewley@gm...>  20130219 20:52:48

Sorry, in my email I forgot to include that I am about to release a Live CD with an Ubuntubased version of PyDSTool [http://help.ubuntu.com/community/LiveCD] that will ease installation and setup, and I’m finishing up a fully integrated interface to linuxbased CUDA GPU platforms for parallel ODE solving [http://www.nvidia.com/object/cuda_home_new.html]. Thanks, Rob  Robert Clewley, Ph.D. Assistant Professor Neuroscience Institute and Department of Mathematics and Statistics Georgia State University PO Box 5030 Atlanta, GA 30302, USA tel: 4044136420 fax: 4044135446 http://neuroscience.gsu.edu/rclewley.html 
From: Rob Clewley <rob.clewley@gm...>  20130219 19:53:29

Dear registered users, PyDSTool has mostly continued as a personal project in recent years. If there is sufficient interest, I am planning to enter a more formal phase of development that involves an open, communitydriven model. I am also planning to solidify prototypical and innovative tools for model analysis, inference, and optimization, which are part of my academic research [http://www.ni.gsu.edu/~rclewley/Research/index.html]. I am preparing a proposal to obtain federal funding from NSF’s Software Infrastructure for Sustained Innovation (SI2SSE) program [http://www.nsf.gov/pubs/2013/nsf13525/nsf13525.htm]. This would support new software tools, anchored in the PyDSTool environment, that focus on the reverse engineering of complex natural systems. As part of my proposal I should convince NSF that my software either already has, or is on the verge of having, significant impact in multiple scientific domains. For my project to grow and become sustainable in the long term, I need your help. I am seeking two things right now: 1) interested collaborators to build a communitydriven development team to broaden my project, improve its design and implementation, and improve its maintenance and integration with other tools; 2) letters of support from happy users or enthusiastic potential users of the proposed features in different application areas. Please respond to me at rob.clewley@... in one of two ways, depending on your time and interest. Either way, I would like you to provide information about your position and scientific application that either has benefited from the use of PyDSTool or the nature of your potential interest in using the proposed features. Your message doesn’t need to be long and detailed. You can just email me a paragraph or two with an authorization to quote you, or, preferably, provide the same information as a more formal letter in PDF with a letterhead. Additionally, the whole future of my academic career now rests on obtaining federal funding, as that is now a formal criterion for tenure at my university. My grant is due within 4 weeks, so if you would like to help I urge you to act soon! If you have more questions, or wish for further details of my proposal, please contact me about that too. I will be very grateful for your input. Thanks for your time, Rob  Robert Clewley, Ph.D. Assistant Professor Neuroscience Institute and Department of Mathematics and Statistics Georgia State University PO Box 5030 Atlanta, GA 30302, USA tel: 4044136420 fax: 4044135446 http://neuroscience.gsu.edu/rclewley.html 
From: Matthew Walsh <matthew.walsh@gm...>  20120527 01:32:58

Hi, I am relatively new to PyDSTool. I am doing some bifurcation analysis which is requiring me to perform quite a lot of runs of my ode system and continuations. I often hit a memory ceiling and the process crashes. I have tried to add calls to 'cleanupMemory()' in the Radau_ODESystem I am using, but I get the following error: ..... File "/home/matt/PyDSTool/Generator/ODEsystem.py", line 433, in cleanupMemory if hasattr(gen, '_solver'): NameError: global name 'gen' is not defined Is there something obvious I am not doing? Regards Matt 
From: Ludo Visser <l.visser@sc...>  20120525 07:52:52

On May 25, 2012, at 4:34 am, gyro funch wrote: > On 5/24/2012 12:16 PM, Ludo Visser wrote: >> >> You can use the fnspec attribute for that. Building from your example, let's consider: >> >> dx/dt = c1*z, with c1 = k/m and z = y/k >> dy/dt = ... >> >> Your varspec would look like: >> >> varspec = {'x': 'c1(k,m)*z(y,k)', >> 'y': ...} >> >> Then, your fnspec would be: >> fnspec = {'c1': (['a', 'b'], 'a/b'), >> 'z': (['a', 'b'], 'a/b')} >> >> This defines the functions 'c1' and 'z', both taking 2 arguments. The keys of the fnspec dictionary defines the function name, the values are tuples of function arguments and function implementations. (Note that in this trivial example you could be done with defining only one function, since they both do the same.) >> >> Hope this helps, >> Ludo >> > > > Thanks, Ludo. > > I'll see if that sort of approach will work for my model. > > I looked through a number of examples in the 'tests' directory of > the distribution. > It seems as if 'sloppycell_example.py' contains something very > similar to what I need. Specifically, it defines an 'assignments' > dictionary that contains expressions using various parameters: > > 'assignments': {'CLB2T_21': 'CLB2_20 + C2_4 + C2P_5 + F2_29 + > F2P_30', 'F_28': 'exp(mu_39 * D_26)', 'mu_39': 'log(2) / mdt_216', > 'Vacdh_58': 'kacdh_126 + kacdh_127 * CDC14_8', ...} > > I'll need to read through 'makeSloppyModel.py' to see how this can > be used in a model. > > Kind regards, > gyro A quick look into makeSloppyModel.py reveals that the specification of the assignment dictionary triggers a routine that wraps this dictionary in a ModelSpec object. I don't know (yet) how these work, so I can't help you with those... Regards, Ludo  Ludo C. Visser, M.Sc. Science Applied phone: +31 6 1066 3076 email: l.c.visser@... 
From: gyro funch <gyromagnetic@gm...>  20120525 02:34:21

On 5/24/2012 12:16 PM, Ludo Visser wrote: > > You can use the fnspec attribute for that. Building from your example, let's consider: > > dx/dt = c1*z, with c1 = k/m and z = y/k > dy/dt = ... > > Your varspec would look like: > > varspec = {'x': 'c1(k,m)*z(y,k)', > 'y': ...} > > Then, your fnspec would be: > fnspec = {'c1': (['a', 'b'], 'a/b'), > 'z': (['a', 'b'], 'a/b')} > > This defines the functions 'c1' and 'z', both taking 2 arguments. The keys of the fnspec dictionary defines the function name, the values are tuples of function arguments and function implementations. (Note that in this trivial example you could be done with defining only one function, since they both do the same.) > > Hope this helps, > Ludo > Thanks, Ludo. I'll see if that sort of approach will work for my model. I looked through a number of examples in the 'tests' directory of the distribution. It seems as if 'sloppycell_example.py' contains something very similar to what I need. Specifically, it defines an 'assignments' dictionary that contains expressions using various parameters: 'assignments': {'CLB2T_21': 'CLB2_20 + C2_4 + C2P_5 + F2_29 + F2P_30', 'F_28': 'exp(mu_39 * D_26)', 'mu_39': 'log(2) / mdt_216', 'Vacdh_58': 'kacdh_126 + kacdh_127 * CDC14_8', ...} I'll need to read through 'makeSloppyModel.py' to see how this can be used in a model. Kind regards, gyro 
From: Ludo Visser <l.visser@sc...>  20120524 18:17:00

> However, I am still not sure how one adds additional equations that > are not ODEs. > > Although not realistic and consistent in units, suppose that for > this oscillations example (Tutorial_linear.html) there are a number > of derived quantities: > > c1 = k/m > c2 = k*m^2 > z = y/k > > and that the differential equations are > > dx/dt = c1*z > dy/dt = k*x/m + c2*(dx/dt) > > For this simple example, we can do some trivial substitutions. > However, in general, how does one add additional auxiliary equations > that are then used in the simulation system? You can use the fnspec attribute for that. Building from your example, let's consider: dx/dt = c1*z, with c1 = k/m and z = y/k dy/dt = ... Your varspec would look like: varspec = {'x': 'c1(k,m)*z(y,k)', 'y': ...} Then, your fnspec would be: fnspec = {'c1': (['a', 'b'], 'a/b'), 'z': (['a', 'b'], 'a/b')} This defines the functions 'c1' and 'z', both taking 2 arguments. The keys of the fnspec dictionary defines the function name, the values are tuples of function arguments and function implementations. (Note that in this trivial example you could be done with defining only one function, since they both do the same.) Hope this helps, Ludo  Ludo C. Visser, M.Sc. Science Applied phone: +31 6 1066 3076 email: l.c.visser@... 
From: gyro funch <gyromagnetic@gm...>  20120524 14:57:02

On 5/24/2012 8:39 AM, Ludo Visser wrote: >> >> The problem is one of ignorance. I am accustomed to ODE integrators >> like scipy.odeint or MATLAB's ode45, where one writes a function >> that returns the numerical rhs of the ODE system at a given time >> point and the ODE solver takes this function as an argument. >> >> Although I am a decent Python programmer, the object oriented >> structure of the PyDSTool framework and the idea of specifying >> equations and parameters using strings and dictionaries is foreign >> to me. > > Hi Gyro, > > I see what you mean now. I found this tutorial very useful in understanding the basics: > http://www.ni.gsu.edu/~rclewley/PyDSTool/Tutorial/Tutorial_linear.html > > Essentially, you need to define: > * a dictionary of parameters, with parameter names as keys and parameter values as values > * a dictionary of initial conditions, with variable names as keys and initial values as values > * a dictionary of ODEs, with variables names as keys and stringexpressions for the ODE, in terms of other variables and parameters > > Then you can use the argsobject to create a generator to compute the trajectories. > > I'm currently working on some examples myself, while learning how to work with PyDSTool. Maybe, once these examples can also be useful to you or others, but the fact that they may not be related to your field of research can be distracting rather than clarifying. My examples are in the field of mechanics; if you're interested, I can document them some more and post them here. > > Kind regards, > Ludo > Hi Ludo, Thank you. That example is very clear. The construction of the parameter, initial condition, and ODE dictionaries is straightforward. However, I am still not sure how one adds additional equations that are not ODEs. Although not realistic and consistent in units, suppose that for this oscillations example (Tutorial_linear.html) there are a number of derived quantities: c1 = k/m c2 = k*m^2 z = y/k and that the differential equations are dx/dt = c1*z dy/dt = k*x/m + c2*(dx/dt) For this simple example, we can do some trivial substitutions. However, in general, how does one add additional auxiliary equations that are then used in the simulation system? Thanks. Kind regards, gyro 
From: Ludo Visser <l.visser@sc...>  20120524 14:39:18

> > The problem is one of ignorance. I am accustomed to ODE integrators > like scipy.odeint or MATLAB's ode45, where one writes a function > that returns the numerical rhs of the ODE system at a given time > point and the ODE solver takes this function as an argument. > > Although I am a decent Python programmer, the object oriented > structure of the PyDSTool framework and the idea of specifying > equations and parameters using strings and dictionaries is foreign > to me. Hi Gyro, I see what you mean now. I found this tutorial very useful in understanding the basics: http://www.ni.gsu.edu/~rclewley/PyDSTool/Tutorial/Tutorial_linear.html Essentially, you need to define: * a dictionary of parameters, with parameter names as keys and parameter values as values * a dictionary of initial conditions, with variable names as keys and initial values as values * a dictionary of ODEs, with variables names as keys and stringexpressions for the ODE, in terms of other variables and parameters Then you can use the argsobject to create a generator to compute the trajectories. I'm currently working on some examples myself, while learning how to work with PyDSTool. Maybe, once these examples can also be useful to you or others, but the fact that they may not be related to your field of research can be distracting rather than clarifying. My examples are in the field of mechanics; if you're interested, I can document them some more and post them here. Kind regards, Ludo  Ludo C. Visser, M.Sc. Science Applied phone: +31 6 1066 3076 email: l.c.visser@... 
From: gyro funch <gyromagnetic@gm...>  20120524 14:09:16

On 5/24/2012 7:33 AM, Ludo Visser wrote: > Hi, > > I'm not completely sure what the problem is that you're running into. > > If the complexity of the conversion equations is an issue, then you can use either the symbolic manipulation tools provided by PyDSTool (although I have no experience with that) or SymPy (I have a lot of experience with that, and SymPy plays really quite nice with PyDSTool) to take semiautomate the generation of the ODEs. Since all equations are specified as string expression, some clever string manipulation can get you a long way. > > For the rest, the problem you describe seems an ordinary first order system, so a single Generator instance, like used in the harmonic oscillation example, should work. > > Regards, > Ludo Visser > Thank you for the reply, Ludo. The problem is one of ignorance. I am accustomed to ODE integrators like scipy.odeint or MATLAB's ode45, where one writes a function that returns the numerical rhs of the ODE system at a given time point and the ODE solver takes this function as an argument. Although I am a decent Python programmer, the object oriented structure of the PyDSTool framework and the idea of specifying equations and parameters using strings and dictionaries is foreign to me. For instance, there is an example in the Elementary Tutorial for a calcium channel model that looks something like this:  DSargs = dst.args(name='Calcium channel model') DSargs.pars = { 'vl': 60, 'vca': 120, 'i': 0, ... DSargs.fnspecs = {'minf': (['v'], '0.5 * ... DSargs.varspecs = {'v': '( i + gl * (vl  v)  gca * minf(v) * (vvca) )/c','w': 'vw' } DSargs.ics = {'v': 0, 'w': 0 }  When I compare this to my model, it is unclear where my conversion equations should go and what syntax I should use. If you, or others, could show me a brief example, that would be greatly appreciated. Thank you. Best regards, gyro 
From: Ludo Visser <l.visser@sc...>  20120524 13:33:43

Hi, I'm not completely sure what the problem is that you're running into. If the complexity of the conversion equations is an issue, then you can use either the symbolic manipulation tools provided by PyDSTool (although I have no experience with that) or SymPy (I have a lot of experience with that, and SymPy plays really quite nice with PyDSTool) to take semiautomate the generation of the ODEs. Since all equations are specified as string expression, some clever string manipulation can get you a long way. For the rest, the problem you describe seems an ordinary first order system, so a single Generator instance, like used in the harmonic oscillation example, should work. Regards, Ludo Visser On May 24, 2012, at 2:48 pm, gyro funch wrote: > Hi, > > I am a newbie with PyDSTool and would appreciate your advice on how > to solve a large system of ODEs that also contains a lot of > auxiliary equations that define and scale variables and parameters. > > Here is a small example that illustrates the sort of problem I am > trying to solve: > > > state variables >  > y1, y2, y3 > > parameters >  > a1,a2,a3 > b1,b2,b3 > c1,c2,c3 > d1,d2,d3 > > conversion equations >  > s1 = a1/b1 > s2 = a2/b2 > s3 = a3/b3 > z1 = y1/c1 > z2 = y2/c2 > z3 = y3/c3 > > differential equations >  > dy1/dt = s1*z1  s2*dy2/dt > dy2/dt = s3*z1  s4*z3 > dy3/dt = s2*z3  s3*z2*dy1/dt > > initial conditions >  > y1(0) = d1 > y2(0) = d2 > y3(0) = d3 > > > The examples included in the documentation and distribution are > helpful, but I am unclear on how to specify this system most > efficiently. I am also not clear on when symbolic variables can be > used or if they would help in this instance. > > Thank you very much. > > Kind regards, > gyro > >  > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > PyDSToolUsers mailing list > PyDSToolUsers@... > https://lists.sourceforge.net/lists/listinfo/pydstoolusers  Ludo C. Visser, M.Sc. Science Applied phone: +31 6 1066 3076 email: l.c.visser@... 
From: gyro funch <gyromagnetic@gm...>  20120524 12:48:41

Hi, I am a newbie with PyDSTool and would appreciate your advice on how to solve a large system of ODEs that also contains a lot of auxiliary equations that define and scale variables and parameters. Here is a small example that illustrates the sort of problem I am trying to solve: state variables  y1, y2, y3 parameters  a1,a2,a3 b1,b2,b3 c1,c2,c3 d1,d2,d3 conversion equations  s1 = a1/b1 s2 = a2/b2 s3 = a3/b3 z1 = y1/c1 z2 = y2/c2 z3 = y3/c3 differential equations  dy1/dt = s1*z1  s2*dy2/dt dy2/dt = s3*z1  s4*z3 dy3/dt = s2*z3  s3*z2*dy1/dt initial conditions  y1(0) = d1 y2(0) = d2 y3(0) = d3 The examples included in the documentation and distribution are helpful, but I am unclear on how to specify this system most efficiently. I am also not clear on when symbolic variables can be used or if they would help in this instance. Thank you very much. Kind regards, gyro 
From: Ludo Visser <l.visser@sc...>  20120516 09:51:36

Hi, I just discovered PyDSTool, and I think it's a great tool; many thanks for that! For my own understanding of the tool, and in order to find out if the tool can help us fully replace Matlab, I'm compiling a set of demos that might also be useful for others. They are (will be) in the area of mechanics mostly. If there is any interest in these demos, let me know. Kind regards, Ludo Visser  Ludo C. Visser, M.Sc. Science Applied phone: +31 6 1066 3076 email: l.c.visser@... 
From: Rob Clewley <rob.clewley@gm...>  20110413 16:25:51

Guilherme, FYI I replied to your forum post through the forum. Hope it helps. Rob  Robert Clewley, Ph.D. Assistant Professor Neuroscience Institute and Department of Mathematics and Statistics Georgia State University PO Box 5030 Atlanta, GA 30302, USA tel: 4044136420 fax: 4044135446 http://www2.gsu.edu/~matrhc http://neuroscience.gsu.edu/rclewley.html 
From: Guilherme Brondani Torri <guitorri@gm...>  20110410 21:02:10

Dear Robert, I not being able to exercise the PyCont_vanDerPol.py example I am under OpenSUSE linux (64bit). Python 2.6.2, Numpy 1.5.1, Scipy 0.8.0, Swig 1.3.36, gcc 4.5 I initially had some problems to run the Dopri, Radau and PyCont examples. Problems went away after removing the m32 (on Generators and ContClass) and installing the development package for Numpy (otherwise it complains about Numarray headers). There is also a TK backed problem with my Matplotlib on SLIP_2D_maps.py. I will look into more detail. This is the vanDerPol problem (error messages): ====================== > python PyCont_vanDerPol.py .... UD1: Integrating backward... Found initial point on curve. Beginning continuation... ... Lost canard! Error: <type 'exceptions.KeyError'> : message: 'UD' done! .... UD1: Integrating forward... Found initial point on curve. Beginning continuation... Lost canard! done! Traceback (most recent call last): File "PyCont_vanDerPol.py", line 368, in <module> plot_cycles(C, 'UD1') File "PyCont_vanDerPol.py", line 274, in plot_cycles if pt.labels['UD']['data'].has_key('cycle'): KeyError: 'UD' ======================== Any idea of how can I fix it? What is the current development status of the PyDSTool? I see you still commit changes to the code and reply to the list/forum. Are there other developers/daily users? Where can I find more documentation besides the code? I saw a thread on Gmane regarding the solvers and integration on Scipy. Are there any advances on this direction? What about collaborating with Sage? I am asking all this questions because I am really interested on learning / using PyDSTool to study nonlinear dynamical systems. I recently started a PhD related to nonlinear micro electromechanical systems and I am looking for tools and solvers to model and simulate such devices. Best regards, Guilherme Torri 
From: Rob Clewley <rob.clewley@gm...>  20110124 20:27:51

Hi Achim, > > How can I deal with matrices in the system of equations? I need to work with > such systems often in future as this is the form I get after applying the > Galerking decomposition to continuummechanical dynamic systesm. > > Thanks for your help! > Achim I'm afraid the software is somewhat limited in this respect. Matrix equations have to unwrapped into a set of 1D equations in scalar variables only, i.e. you must premultiply out the RHS vector expressions and extract each component of the result to the RHS of a 1D scalar variable. As well as the usual Maple or Sage, the excellent SymPy package should be able to help you perform the symbolic matrix multiplications, from which you could copy and paste strings into your PyDSTool specs. In addition, provided you have the Radau integrator working, you may integrate systems that have a LHS "mass matrix," which can have time and state dependence. I.e. this will let you solve more general ODEs and DAEs M(x,t) dx/dt = F(x,t) that cannot be written in a normal form dx / dt = f(x, t), where x is a vector, because of the potential noninvertability of M. For an example, see the demonstration in tests/freefinger_noforce_radau.py, which implements a "finger" model as an inverted, damped triple pendulum. Currently, the syntax for this is clunky, and if anyone would like to contribute the code to provide better syntactic sugar for this feature I would include it! Best, Rob  Robert Clewley, Ph.D. Assistant Professor Neuroscience Institute and Department of Mathematics and Statistics Georgia State University PO Box 5030 Atlanta, GA 30302, USA tel: 4044136420 fax: 4044135446 http://www2.gsu.edu/~matrhc http://neuroscience.gsu.edu/rclewley.html 
From: Rob Clewley <rob.clewley@gm...>  20110124 20:05:58

Hi list members, As you may have noticed, last year the PyDSTool wiki server crashed at my former place of employment, Cornell University. For various administrative and technical reasons that I do not properly understand, all the data was irretrievably lost. I have only a less recent backup of the entire Wiki, which is probably a year or more old. Although that covers almost all of the pages, there were many minor but important edits in many pages that I have no record or memory of. It occurred to me to ask the users list in case anyone made a copy of the wiki for their own use offline in the past 12 months. If you have and wouldn't mind zipping up the files to send to me, I would be most grateful. They can even be in html or PDF format, if that's all you have. Also, I hope to put out another bug fix release in the near future. My research and teaching duties make my support for this software less rigorous and occasionally less careful than I would prefer. (I am the only active maintainer.) This has become harder since the entire SVN repository records were also lost in the Cornell server crash, and I have not yet had the time to commit to a new version control system and implement it. Thank you for bearing with me while I fix some of the silly mistakes that have crept in while trying to fix other interrelated features! I do appreciate when you offer suggestions for fixing issues that arise, as that helps me respond to them more rapidly. Regards, Rob  Robert Clewley, Ph.D. Assistant Professor Neuroscience Institute and Department of Mathematics and Statistics Georgia State University PO Box 5030 Atlanta, GA 30302, USA tel: 4044136420 fax: 4044135446 http://www2.gsu.edu/~matrhc http://neuroscience.gsu.edu/rclewley.html 
From: Achim Ammon <achim.ammon@go...>  20110112 06:29:19

Hi Happy new year every one! I'm new to continuation and trying to get my head around things at the moment. I've got the following system of equation: $$ \left( \begin{array}{c} \dot{s}\\ \dot{v} \end{array} \right) = \left( \begin{array}{c} v\\ \mathbf{B}^{1} \mathbf{A} s + V_{DC} \mathbf{B}^{1} \mathbf{C} s \end{array} \right) $$ where A B and C are square matrices of dimension (nxn), s and v are vectors of length n and V_DC is a scalar. I tried to enter this system of equations and solve it with pyDSTool but got; 'TypeError: only length1 arrays can be converted to Python scalars'. Here's the code: > #!/usr/bin/python > # encoding=utf8 > > import PyDSTool as DS > import numpy as np > > AA = np.matrix([[127.717469865, 2.05025780562], > [0.0521863096197, 2605.29996274]]) > BB = np.matrix([[1.65676839951e10, 6.76971107431e14], > [6.76971107431e14, 8.60513163289e11]]) > CC = np.matrix([[5.91089367427436, 58.2428565496970], > [9.30459729674465, 47.6048481884652]]) > > > DSargs = DS.args(name='Hopf') > > # parameters > DSargs.pars = { > 'A': AA, > 'B': BB, > 'B_I': BB.I, > 'C': CC, > 'V_DC': 0 > } > > # auxiliary helper function(s) > DSargs.fnspecs = { > 'ss': (['s'], 'sum(s)'), > 'vv': (['v'], 'sum(v)') > } > > # rhs of the differential equation > DSargs.varspecs = { > 's': 'v', > 'v': 'B_I*A*s + V_DC*B_I*C*s' > } > > # initial conditions > DSargs.ics = { > 's': np.matrix([0,0]), > 'v': np.matrix([0,0]) > } > > DSargs.info() > > ode = DS.Generator.Vode_ODEsystem(DSargs) > > # Set up continuation class > PyCont = DS.ContClass(ode) > > PCargs = DS.args(name='EQ1', type='EPC') > PCargs.freepars = ['V_DC'] > PCargs.MaxNumPoints = 400 > PCargs.StepSize = 0.1 > PCargs.LocBifPoints = ['all'] > PCargs.SaveEigen = True > How can I deal with matrices in the system of equations? I need to work with such systems often in future as this is the form I get after applying the Galerking decomposition to continuummechanical dynamic systesm. Thanks for your help! Achim ps: Thanks for another awesome opensource tool! 
From: Rob Clewley <rob.clewley@gm...>  20091222 00:45:58

Dear User list, I have recently pushed the most uptodate SVN version of PyDSTool to the general release v0.88. It is primarily a bug fix and python/library version compatibility release in the runup to some major changes in PyDSTool version 0.90. So there are few major new features, but many Toolbox improvements. Here are some details: * New numeric_to_traj and pointset_to_traj utility functions * Major improvements to intelligent expr2func (symbolic > python function conversion) * Cleanup of global imports, especially: entire numpy.random and linalg namespaces no longer imported by default * Added support for 'min' and 'max' keywords in functional specifications (for ODE righthand sides, for instance) * Optimization tools from thirdparty genericOpt included  improved parameter estimation examples * Numerical phaseresponse calculations now possible in PRC toolbox * Fullyfledged DSSRT toolbox (see wiki page) * New tests/demonstrations in PyDSTool/tests * Improved compatibility with crossplatform use and with recent python versions and associated libraries * Added many minor features (see timeline on Trac http://jay.cam.cornell.edu/pydstool/timeline) * Fixed many minor bugs (see timeline on Trac http://jay.cam.cornell.edu/pydstool/timeline) Please let me know if you find any bugs or unexpected quirks. We are still working on a onestop installer and a better method for compiling C and Fortranbased RHS functions for version 0.90, but this is requiring a major refactoring. Happy Holidays, Rob  Robert Clewley, Ph.D. Assistant Professor Neuroscience Institute and Department of Mathematics and Statistics Georgia State University 720 COE, 30 Pryor St Atlanta, GA 30303, USA tel: 4044136420 fax: 4044136403 http://www2.gsu.edu/~matrhc 
From: <freehumba@gm...>  20080520 14:21:05

Hya, currently investigateing PyDSTool to solve some DAEs. I tried to implement an easy electric circuit with a capacitor discharging through a nonlinear resistor. (I know that this system could be reduced to one ODEs but I'm practising.) Below the code for PyDSTool and also for matlab. Both work for a linear resistor, but PyDSTools ceases to work for even tiny nonlinearities whereas matlab works fine. where am I going wrong? Any options I need to set? Thanks for the help mauro  #! /usr/local/bin/python """Simple example of solving a differentialalgebraic equation. A capacitor and nonlinear resistor in series. Resistor:  delta_v = R*I^non_lin*sign(I) Capacitor: I = C * d(delta_v)/dt for non_lin=1 has solution: delta_v = exp(t/(RC)) * delta_v_0 I = 1/R( exp(t/(RC)) * delta_v_0) """ from PyDSTool import * DSargs = args() # parameters R = 80. # resistance C = 1e3 # capcitance non_lin = 1.01 # non linearity DSargs['pars'] = {'R': R, 'C': C, 'non_lin': non_lin} # IC: making sure they satisfy the algebraic constraint delta_v_0 = 100 I_0 = sign(delta_v_0)*(delta_v_0/R)**(1./non_lin) DSargs['ics'] = {'I': I_0, 'delta_v': delta_v_0} # eqn. definition DSargs['varspecs'] = {'I': 'I*R*pow(abs(I),non_lin1) + delta_v', 'delta_v': 'I/C'} DSargs['fnspecs'] = {'massMatrix': (['t','I','delta_v'], '[[0,0],[0,1]]')} DSargs['vars'] = ['I', 'delta_v'] # numerical parameters DSargs['algparams'] = {'init_step': 0.0005, 'max_step': 0.1, 'rtol': 1e9, 'atol': 1e9, 'max_pts': 1000000} DSargs['checklevel'] = 1 DSargs['name'] = 'DAE_nonlin_resistance_capacitor' dae = Generator.Radau_ODEsystem(DSargs) dae.set(tdata=[0, 1]) traj = dae.compute('nonlin') pd = traj.sample(dt=0.05) # exact solutions for non_lin=1 I = lambda t : 1/R*( exp(t/(R*C)) * delta_v_0) delta_v = lambda t : exp(t/(R*C)) * delta_v_0 figure() plot(pd['t'], pd['I']) hold(True) plot(pd['t'], I(pd['t']), 'bd') twinx() plot(pd['t'], pd['delta_v'], 'g') plot(pd['t'], delta_v(pd['t']), 'gd') show()  function [t,out] = resitor_capacitor(); % to integrate the system of DAE arrising from a non % linear resistor in series with a capacitor plot_yes = 1; R = 80; C = 1e3; non_lin = 1.01; %IC delta_v_0 = 100 I_0 = sign(delta_v_0)*(delta_v_0/R)^(1/non_lin) ic = [I_0 delta_v_0]'; tspan = [0 1]'; % integration time M = diag([0 1]); % mass matrix opts = odeset('Mass',M,'MassSingular','yes', ... 'stats','on','MStateDependence','none'); [t,out] = ode15s(@int_fun,tspan,ic,opts); if plot_yes == 1 figure subplot(211) plot(t, out(:,1)) subplot(212) plot(t, out(:,2),'g') end % function to be integrated: function out = int_fun(t,in) % assign variables for convinience I = in(1); delta_v = in(2); % do the maths: out(1) = I*R*(abs(I))^(non_lin1) + delta_v; out(2) = I/C; out = out'; end end  GMX startet ShortView.de. Hier findest Du Leute mit Deinen Interessen! Jetzt dabei sein: http://www.shortview.de/?mc=sv_ext_mf@... 
From: Rob Clewley <rhc28@co...>  20070712 02:52:28

Hi, There are lots of minor improvements and fixes in this version, but a major feature is the support for userdefined functions for continuation using PyCont. Also added: some basic phaseplane tools, calculation of phase response curves for oscillators and support for some special math functions. A summary of changes is below. Thanks! Rob, Erik, and Drew. Summary of changes  * PyCont can now perform continuation according to the zeros of userdefined functions or bounds (see example tests/PyCont_vanDerPol.py and PyCont_Hopfield.py) * Support for scipy.special functions in Generator definitions (Python targets only. C targets with a more limited range of functions will be supported soon) * A few phase plane analysis tools have been added to Toolbox/phaseplane.py  in particular, the finding of fixed points, nullclines, and some simple code to compute saddle manifolds in planar systems * Phase response curves can now be calculated for limit cycles using the adjoint method (see tests/ML_adjointPRC.py and HH_adjointPRC.py for examples) * Generators now include auxiliary variable data in recorded event data * Pointset comparisons using arithmetic operators now consistent with the normbased comparisons used by Points * Time mesh points for external inputs to integrators now forced to be integration mesh points for greater numerical accuracy and stability * VODE now supports 'use_special' for forcing values of output trajectory mesh * Improved support for numpy float and int types alongside standard python types * Improved numerical first derivative computed by central finite differences and Ridders' method * Added a multilinear regression auxiliary function builder (common.py/makeMultilinearRegrFn) * Support for parameter estimation using least squares using qualitative features such as positions of extrema (see wiki page ParamEst) * Moved ParamEst.py into PyDSTool/Toolbox, a more logical home, and removed its default import in PyDSTool * Added Toolbox/ModelHelper.py for additional model building utilities (esp. for neural modelling) * Minor bug fixes and improvements (see Trac wiki site for full change log) 