- From: alan.garny at dpag.ox.ac.uk (Alan Garny)
- Subject: [cellml-discussion] on a CellML format
- Date: Wed, 22 Aug 2007 05:10:26 +0100
>
-----Original Message-----
>
From: cellml-discussion-bounces at cellml.org [mailto:cellml-discussion-
>
bounces at cellml.org] On Behalf Of David Nickerson
>
Sent: 22 August 2007 03:27
>
To: CellML Discussion List
>
Cc: taishin at izanami.bpe.es.osaka-u.ac.jp
>
Subject: Re: [cellml-discussion] on a CellML format
>
>
Hi Taishin,
>
>
Firstly, I think most people on the team list are also on the
>
cellml-discussion list so I'm dropping off the CC to the team list. Rest
>
on my comments inline below...
>
>
Taishin Nomura wrote:
>
> Dear all,
>
>
>
> We had a discussion on CellML format in response to the comment
>
> made by Bandall. In our discussion, we tried to illustrate structure
>
> of coupled_pendulum.cellml. We are not sure whether or not you are
>
> interseted in this discussion. Nevertheless, we would like to make
>
> this clear so that we can continue our effort to completely support
>
> cellml API since we believe it has a definite meaning.
>
>
>
> A dominant part of the file we are going to argue may be like fig. 1
>
> shown temporalily at
>
> http://www3.bpe.es.osaka-u.ac.jp/~suzuki/coupled_pendulum.pdf
>
> This page will be closed when dicussion stops.
>
>
>
> The corresponding structue may roughly be represented in fig. 2
>
> as a schematic diagram.
>
>
>
> Then, possible implication of "private_interface" and
"public_interface",
>
> based on our understanding, is added to the diagram as fig. 3,
>
> where
>
> red lines indicate "public_interface"
>
> and
>
> blue lines "private_interface".
>
>
>
> Can we share the understanding of this diagram?
>
>
yep - very nice diagrams!
>
>
> Suppose yes, then we have several questions and comments.
>
>
>
> # On a Redundant definition of the initial value
>
> The initial value of
>
> <variable name="b"> at <component name="Pendulum">
>
> and
>
> <variable name="b"> at <component name="PendulumLowerSegment">
>
> are defined redundantly as indicated by fig. 4.
>
> Is there any reason for this redundant definition?
>
> Please let us know. This is becuase if these two redundantly
>
> defined initial values are not identical, it may cause a problem.
>
>
definitely, as you describe the model the initial_value attribute for
>
the b variable in the Pendulum component is not only redundant it is
>
invalid CellML. (you can't have an initial_value if any of the
>
interfaces is 'in'.)
>
>
> Note that we are aware of the fact that
>
> <variable name="b"> at <component name="Pendulum">
>
> implies
>
> <variable name="b"> at <component name="PendulumLowerSegment">
>
> using <connection> property.
>
> We are also aware of the fact that
>
> the redundant definition of
>
> <variable name="b"> at <component name="Pendulum">
>
> and
>
> <variable name="b"> at <component name="PendulumLowerSegment">
>
> is natural and necessary to allow other components to utilze
>
> <variable name="b"> of <component name="Pendulum"> which is
encapsulated.
>
>
yep - that all makes sense.
>
>
> # Policy on location of definition of equations and initial values
>
> For example,
>
> <variable name="a_angular_velocity"> is defined both
>
> in <component name="Pendulum">
>
> and
>
> in <component name="PendulumUpperSegment">.
>
> This is okay for the same reason mentined above.
>
> However, in this case, the initial value is defined
>
> in <component name="Pendulum">, but no definition of equations,
>
> while
>
> the equation is defined in <component name="PendulumUpperSegment">,
>
> but no definition of the initial value.
>
>
I think you have name="Pendulum" and name="PendulumUpperSegment" swapped
>
around, but again this is invalid CellML. Since variable
>
a_angular_velocity (and also b_angular_velocity) has a private interface
>
of 'in', it is invalid to define the differential equation
>
d(a_angular_velocity)/dt in the Pendulum component.
>
>
> Regarding this sort of distributed definitions of properties of
>
> an object, we would like to know your policy. Of course,
>
> the current situation is fairly lax and the user can define a property
>
> anywhere within an encapsuled component, even in a component
>
> in the encapsulated component. However, it could be a source of
>
> errors if we have to deal with a complicated model with many
>
> properties and components.
>
>
I think this is because the model you are describing is invalid. This
>
kind of distributed definition of properties is invalid CellML (as far
>
as I can tell). Only the component which "owns" a variable (i.e., the
>
component in which the variable is defined with no interface of "in") is
>
allowed to alter the variable's value - either with an initial_value or
>
some mathematical equation.
>
>
> # An alternative way to describe the pendulum (A proposal)
>
> Fig. 5 is an alternative structure to describe the pendulum.
>
> It seems that this is natural in the following sense:
>
> every <variable> such as
>
> <variable name="a_angular_velocity">
>
> or
>
> <variable name="b_angular_velocity">
>
> has both the initial value and the equation together.
>
> Then, the encapsulted <component name="Pendulum"> plays a
>
> simple role to put
>
> <component name="PendulumUpperSegment">
>
> and
>
> <component name="PendulumLowerSegment">
>
> together within a single component.
>
>
>
> There may be other kinds of structure such as a case
>
> illustrated in Fig. 6.
>
>
Both of these look correct to me, although the one in Fig. 5 seems more
>
natural to me :-)
>
>
Looking back, I see this is the PCEnv test model that Randall mentioned
>
a while back. And looking at that original code it certainly looks like
>
an invalid model to me...and passing it through Jonathan's validator
>
(https://chaste.ediamond.ox.ac.uk/cellml/) that seems to agree with me...
I would also agree with Taishin and David's assessment, and for what it is
worth, COR does too (i.e. it generates some errors upon opening such a
file)...
Alan.
Archive powered by MHonArc 2.6.18.