Re: Fwd: questions about MCSim

"Frédéric BOIS" <[email protected]> Wed, 15 Apr 2009 16:08:17 +0200
Newsgroups gmane.comp.gnu.mcsim
Message-ID <[email protected]>
Dear Cindy,

I actually love the [] syntax, it's one of my most brilliant ideas. That =
being said, it is also half-baked and imperfect. In particular you should =
be aware
of the fact that you will NOT be able to use the vector syntax in your =
input files... Some of my collaborators asked me when I will finish that, =
and I
had to explain to them that it was a large task. But to answer specifically=
 your questions:
The first (sad) answer is no: you cannot dynamically change the size of an =
array defined in MCSim.
Alternatives may exist:=20
- Can you work with a maximum length vector and use only part of it in =
various runs ? (that would assume a particular structure=20
  for your system) You could combine that with conditional statements for =
the computation of  the derivatives (for example
  dt(Y[1-20]) =3D (n < 10 ? a*Y[i-1] - b*Y[i] : 0);
  That's somewhat wasteful, but not too much, because null derivative =
states take no time to integrate.
- If you really feel like programming, you can indeed change the code, =
it's free for all. But honestly, you would be stretching quite far the =
syntax
  and the code, and I don't even have an idea where you would start, =
because there is no connection between run time inputs (defined in input =
files)
  and the precompilation model definition files. You would have to define =
a mechanism to define dynamic allocation of space and on the fly ODE
  rewriting... sounds impractical to me. You may want to look at a way =
(scripting) to generate automatically the model files and a template input =
file,
  recompile the model on the fly and run it. That's would be a way (but =
slow). Actually, if you are in mood for programming, the best use of your =
time
  would be to change the mcsim/sim codes to allow the bracket syntax in =
input files...
- You may also want to look at the latest capability of the code: to use a =
collection of separate SBML files and a template transport model to =
generate
  automatically a global model (but still, that would be slow if you =
wanted to run 1000 different models...). I haven't explored everything it =
can be used=20
  for, and probably never will , but it might be useful to you, depending =
on what you want to do exactly.

I hope this helps a bit. Feel free to mail me again if you need further =
clarifications.

Best regards.=20

Frederic


>>> Zhenhong Li <> 14/04/2009 21:26 >>>

Hello,

I am a PhD student at Oregon Health & Science University. I am using MCSim =
to do my modeling work for hormone profiles in Fathead Minnows. The =
question I would like to ask is about "vectors".=20

According to MCSim manual, vectors should be defined as <variable-name>'['<=
integer>']'. Can I define the <integer> as a variable? I mean, for =
example, I would like to use a 'n' to replace the <integer>; then in the =
first run, I define n=3D10 (the vector has a length of 10), and in the =
second run I define n=3D7 (the vector has a length of 7), as so on. Then, =
for different runs, the length of the vector varies.

I tried several times, it seems that the present program does not accept =
it. Would you please give me any suggestion? Can I modify the program a =
little bit to add this function in? and how? Thank you very much!

Best!

Cindy