Define causality and/or block diagram connection semantic
(depending on context)
Examples
connector RealInput = input Real;
connector RealOutput = output Real;
block Integrator
RealInput u;
RealOutput y;
protected
Real x;
equation
der(x) = u;
y = x;
end Integrator;
Syntax
See section on type_prefix
in the Modelica
Grammar.
Description
The prefixes input and output
have a slightly different semantic meaning depending on the context
where they are used:
- In functions, these prefixes define the computational causality
of the function body, i.e., given the variables declared as input,
the variables declared as output are computed in the function
body.
- In simulation models and blocks (i.e., on the top level of a
model or block that shall be simulated), these prefixes define the
interaction with the environment where the simulation model or
block is used. Especially, the input prefix defines that values for
such a variable have to be provided from the simulation environment
and the output prefix defines that the values of the corresponding
variable can be directly utilized in the simulation
environment.
- In component models and blocks, the input prefix defines that a
binding equation has to be provided for the corresponding variable
when the component is utilized in order to guarantee a locally
balanced model (i.e., the number of local equations is identical to
the local number of unknowns). Example:
block FirstOrder
input Real u;
...
end FirstOrder;
model UseFirstOrder
FirstOrder firstOrder(u=time); // binding equation for u
...
end UseFirstOrder;
The output prefix does not have a particular effect in a model or
block component and is ignored.
- In connectors, prefixes input and output define that the
corresponding connectors can only be connected according to block
diagram semantics (e.g., a connector with an output variable can
only be connected to a connector where the corresponding variable
is declared as input). There is the restriction that connectors
which have at least one variable declared as input must be
externally connected (in order to get a locally balanced model,
where the number of local unknowns is identical to the number of
unknown equations). Together with the block diagram semantics rule
this means, that such connectors must be connected exactly once
externally.
- In records, prefixes input and output are not allowed, since
otherwise a record could not be, e.g., passed as input argument to
a function.
Generated at 2020-06-05T21:39:08Z by OpenModelica 1.16.0~dev-442-g2e5bc9f