﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
1428	inner/outer functions not supported	Per Östlund	Adrian Pop	"We do not support inner/outer functions yet, which causes models such as these to fail:
{{{
partial function gravityInterface //example from Fritzson's book, p.177
  input Real r[3] ""position"";
  output Real g[3] ""gravity acceleration"";
end gravityInterface;

function uniformGravity
  extends gravityInterface;
  algorithm 
  g := {0, -9.81, 0};
end uniformGravity;

function pointGravity
  extends gravityInterface;
  parameter Real k=1;
protected 
  Real n[3];
algorithm 
  n := -r/sqrt(r*r);
  g := k/(r*r) * n;    
end pointGravity;

model Particle
  parameter Real m = 1;
  outer function gravity = gravityInterface;
  Real r[3](start = {1,1,0}) ""position"";
  Real v[3](start = {0,1,0}) ""velocity"";
equation 
  der(r) = v;
  m*der(v) = m*gravity(r);
end Particle;

model ParticlesInPointGravity
  inner function gravity = pointGravity(k=1);
  Particle p1, p2(r(start={1,0,0}));       
end ParticlesInPointGravity;

model ParticlesInUniformGravity
  inner function gravity = uniformGravity;
  Particle p1, p2(v(start={0,0.9,0}));    
end ParticlesInUniformGravity;

model ParticleSystem
  ParticlesInPointGravity pP;
  ParticlesInUniformGravity pU;
end ParticleSystem;
}}}"	defect	closed	high	1.16.0	New Instantiation		fixed		Per Östlund
