The operator spatialDistribution allows the infinite-dimensional problem below to be solved efficiently with good accuracy
where![]()
z(x, t)
is the transported quantity, x
is the
normalized spatial coordinate (0.0 ≤ x
≤ 1.0), t
is the
time, v(t)
= der(x)
is the normalized
transport velocity and the boundary conditions are set at either
x
= 0.0 or x
= 1.0, depending on the sign of the velocity.
(out0, out1) = spatialDistribution(in0, in1, x, positiveVelocity, initialPoints = {0.0, 1.0}, initialValues = {0.0, 0.0});
Many applications involve the modelling of variable-speed transport of properties.
One option to model this infinite-dimensional system is to approximate it by an ODE,
but this requires a large number of state variables and might introduce either
numerical diffusion or numerical oscillations. Another option is to use a built-in
operator that keeps track of the spatial distribution of z(x,t)
,
by suitable sampling, interpolation, and shifting of the stored distribution.
In this case, the internal state of the operator is hidden from the ODE solver.
See Section 3.7.2.2 of the Modelica Language Specification 3.4 for a more in-depth description and elaborate example.