Opened 12 years ago

Last modified 12 years ago

#1926 closed defect

hybrid initialization — at Initial Version

Reported by: Willi Braun Owned by: Lennart Ochel
Priority: high Milestone: 1.9.0
Component: Backend Version:
Keywords: Cc: Jens Frenkel

Description

try to initialize following two models:

loadString("
model A1
  parameter Real x(fixed=false) = if y>3 then sin(y) else 0;
  parameter Real y(start=5);
initial equation
  x = 0;
end A1;

model A2
  Real x(fixed=false) = if y>3 then sin(y) else 0;
  Real y(start=5);
initial equation
  x = 0;
equation
  when time > 0.5 then
    y = 0;
  end when;
end A2;
");

simulate(A1);
val(x,0);
val(y,0);
val(x,1);
val(y,1);

simulate(A2);
val(x,0);
val(y,0);
val(x,1);
val(y,1);

run it results in :

true
record SimulationResult
    resultFile = "A1_res.mat",
    simulationOptions = "startTime = 0.0, stopTime = 1.0, numberOfIntervals = 500, tolerance = 0.000001, method = 'dassl', fileNamePrefix = 'A1', storeInTemp = false, noClean = false, options = '', outputFormat = 'mat', variableFilter = '.*', measureTime = false, cflags = '', simflags = ''",
    messages = "",
    timeFrontend = 0.012285856000000001,
    timeBackend = 0.004783636,
    timeSimCode = 0.003330172,
    timeTemplates = 0.001422459,
    timeCompile = 0.199305583,
    timeSimulation = 0.0066569970000000004,
    timeTotal = 0.22785154100000002
end SimulationResult;
0.0
5.0
0.0
5.0
record SimulationResult
    resultFile = "A2_res.mat",
    simulationOptions = "startTime = 0.0, stopTime = 1.0, numberOfIntervals = 500, tolerance = 0.000001, method = 'dassl', fileNamePrefix = 'A2', storeInTemp = false, noClean = false, options = '', outputFormat = 'mat', variableFilter = '.*', measureTime = false, cflags = '', simflags = ''",
    messages = "",
    timeFrontend = 0.009759409,
    timeBackend = 0.004888894,
    timeSimCode = 0.002635039,
    timeTemplates = 0.001217053,
    timeCompile = 0.205227073,
    timeSimulation = 0.00712046,
    timeTotal = 0.230887109
end SimulationResult;
-0.9589242746631385
5.0
0.0
0.0

I would expect at least one of this solutions:
x = 0;
y = {sin(i*Pi) for i in 1:n};

Change History (0)

Note: See TracTickets for help on using tickets.