From 613935f0a6521d12f598b47e2a6a0d1445aafcda Mon Sep 17 00:00:00 2001 From: miettinen Date: Tue, 14 Jan 2014 10:42:30 +0000 Subject: [PATCH] Solving problems in custom integral equation in stocks (refs #4657). git-svn-id: https://www.simantics.org/svn/simantics/sysdyn/trunk@28628 ac1ea38d-2e2b-0410-8846-a27921b304fc --- org.simantics.sysdyn.ontology/graph.tg | Bin 165105 -> 165228 bytes .../graph/Sysdyn.pgraph | 2 + .../org/simantics/sysdyn/SysdynResource.java | 3 + .../widgets/expressions/StockExpression.java | 112 +++++++++++------- .../sysdyn/ui/validation/ValidationUtils.java | 28 +++-- .../expressions/StockExpression.java | 67 ++++++----- 6 files changed, 127 insertions(+), 85 deletions(-) diff --git a/org.simantics.sysdyn.ontology/graph.tg b/org.simantics.sysdyn.ontology/graph.tg index 29f035b174aa8a019ad1cf386ec714ebd5cfa85a..27edbee88049cbfcdf0649ef11d89f8fc0a5b046 100644 GIT binary patch literal 165228 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 jMMCuRl53-2d;co@lbhs{$xN6M2#A1E1q4CB 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 SYSDYN.DelayExpression.initialValue --> L0.String -- SYSDYN.StockExpression.useCustomIntegral --> SYSDYN.StockExpression -- SYSDYN.StockExpression.integralEquation --> L0.String -- SYSDYN.StockExpression.initialEquation --> L0.String data, Table allowedVariables) { GridLayoutFactory.fillDefaults().numColumns(2).applyTo(parent); String initialEquation = data.get("initialEquation") != null ? (String)data.get("initialEquation") : ""; - String integralEquation = data.get("integral") != null ? (String)data.get("integral") : ""; + String integralEquation = data.get("integral") != null ? (String)data.get("integral") : getDefaultIntegral(input.expression); Label label = new Label(parent, SWT.NONE); @@ -102,7 +102,8 @@ public class StockExpression implements IExpression { // Delete the possible integral expression from the database to note // that we are in the "default" mode. SysdynResource sr = SysdynResource.getInstance(graph); - graph.deny(input.expression, sr.StockExpression_integralEquation); + graph.deny(input.expression, sr.StockExpression_useCustomIntegral); + graph.claimLiteral(input.expression, sr.StockExpression_integralEquation, getDefaultIntegral(graph, input.expression)); } }); break; @@ -151,7 +152,7 @@ public class StockExpression implements IExpression { if (graph.isInstanceOf(expression, sr.StockExpression)) { String initialEquation = graph.getPossibleRelatedValue(expression, sr.StockExpression_initialEquation); String integralEquation = graph.getPossibleRelatedValue(expression, sr.StockExpression_integralEquation); - initialEquation = (initialEquation != null) ? initialEquation : ""; + initialEquation = (initialEquation != null) ? initialEquation : ""; return new Pair(integralEquation, initialEquation); } else { return new Pair(null, ""); @@ -166,6 +167,21 @@ public class StockExpression implements IExpression { } if (equations.first == null) { + try { + SimanticsUI.getSession().syncRequest(new WriteRequest() { + + @Override + public void perform(WriteGraph graph) throws DatabaseException { + SysdynResource sr = SysdynResource.getInstance(graph); + graph.claimLiteral(input.expression, sr.StockExpression_integralEquation, getDefaultIntegral(graph, input.expression)); + } + + }); + } catch (DatabaseException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + data.put("integral", getDefaultIntegral(expression)); } else { data.put("integral", equations.first); @@ -191,10 +207,12 @@ public class StockExpression implements IExpression { public void save(final Resource expression, final Map data) { final String currentInitial = this.initialExpression.getExpression(); final String currentIntegral = this.integralExpression.getExpression(); - if(currentInitial == null - || !currentInitial.equals(data.get("initialEquation")) - || (currentIntegral != null - && !currentIntegral.equals(data.get("integral")))) { + if (currentIntegral == null) { + this.integralExpression.setExpression(getDefaultIntegral(expression)); + } + if(!currentInitial.equals(data.get("initialEquation")) + || currentIntegral == null + || !currentIntegral.equals(data.get("integral"))) { SimanticsUI.getSession().asyncRequest(new WriteRequest() { @Override @@ -222,17 +240,17 @@ public class StockExpression implements IExpression { } g.claimLiteral(expression, sr.StockExpression_initialEquation, currentInitial); - // If the value is same as default, do not save to database. - if (currentIntegral != null && !currentIntegral.equals(data.get("integral"))) { - g.claimLiteral(expression, sr.StockExpression_integralEquation, currentIntegral); + if (!currentIntegral.equals(data.get("integral"))) { + // If the value is not same as default, enable the custom tag + g.claim(expression, sr.StockExpression_useCustomIntegral, expression); } + g.claimLiteral(expression, sr.StockExpression_integralEquation, currentIntegral); } }); } this.initialExpression.setExpression(currentInitial); - if (currentIntegral != null) - this.integralExpression.setExpression(currentIntegral); + this.integralExpression.setExpression(currentIntegral); } @Override @@ -243,7 +261,42 @@ public class StockExpression implements IExpression { data.put("integral", this.integralExpression.getExpression()); } - private String getDefaultIntegral(final Resource expression) { + + private static String getDefaultIntegral(ReadGraph graph, Resource expression) throws DatabaseException { + SysdynResource sr = SysdynResource.getInstance(graph); + Layer0 l0 = Layer0.getInstance(graph); + + // find the variable + Resource variable = graph.getPossibleObject(expression, l0.PartOf); + if(variable == null) + return ""; + + SysdynModelManager sdm = SysdynModelManager.getInstance(graph.getSession()); + SysdynModel model = sdm.getModel(graph, graph.getSingleObject(variable, l0.PartOf)); + model.update(graph); + + Stock stock = (Stock)model.getElement(variable); + + String range = graph.getPossibleRelatedValue(expression, sr.Expression_arrayRange); + if(range == null) + range = ""; + + StringBuilder builder = new StringBuilder(); + builder.append(""); + for(Valve in : stock.getIncomingValves()) { + builder.append(" + " + in.getName() + range); + } + for(Valve out : stock.getOutgoingValves()) { + builder.append(" - " + out.getName() + range); + } + if (builder.indexOf(" + ") == 0) + builder.delete(0, 3); + + return builder.toString().trim(); + } + + + private static String getDefaultIntegral(final Resource expression) { String integral = ""; if(expression == null) @@ -253,36 +306,7 @@ public class StockExpression implements IExpression { @Override public String perform(ReadGraph graph) throws DatabaseException { - SysdynResource sr = SysdynResource.getInstance(graph); - Layer0 l0 = Layer0.getInstance(graph); - - // find the variable - Resource variable = graph.getPossibleObject(expression, l0.PartOf); - if(variable == null) - return ""; - - SysdynModelManager sdm = SysdynModelManager.getInstance(graph.getSession()); - SysdynModel model = sdm.getModel(graph, graph.getSingleObject(variable, l0.PartOf)); - model.update(graph); - - Stock stock = (Stock)model.getElement(variable); - - String range = graph.getPossibleRelatedValue(expression, sr.Expression_arrayRange); - if(range == null) - range = ""; - - StringBuilder builder = new StringBuilder(); - builder.append(""); - for(Valve in : stock.getIncomingValves()) { - builder.append(" + " + in.getName() + range); - } - for(Valve out : stock.getOutgoingValves()) { - builder.append(" - " + out.getName() + range); - } - if (builder.indexOf(" + ") == 0) - builder.delete(0, 3); - - return builder.toString().trim(); + return getDefaultIntegral(graph, expression); } }); diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/validation/ValidationUtils.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/validation/ValidationUtils.java index 96c1c981..d90fd960 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/validation/ValidationUtils.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/validation/ValidationUtils.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2012 Association for Decentralized Information Management in + * Copyright (c) 2007, 2014 Association for Decentralized Information Management in * Industry THTH ry. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -12,7 +12,6 @@ package org.simantics.sysdyn.ui.validation; import java.io.StringReader; -import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; @@ -127,17 +126,8 @@ public class ValidationUtils { SysdynResource sr = SysdynResource.getInstance(graph); Layer0 l0 = Layer0.getInstance(graph); + // Add incoming dependencies and flows Collection dependencies = graph.getObjects(r, sr.Variable_isHeadOf); - - // Add also the outgoing flows - Collection flows = graph.getObjects(r, sr.Variable_isTailOf); - ArrayList outgoingFlows = new ArrayList(); - for (Resource f : flows) { - if (graph.isInstanceOf(f, sr.Flow)) - outgoingFlows.add(f); - } - dependencies.addAll(outgoingFlows); - for(Resource d : dependencies) { if(graph.isInstanceOf(d, sr.Dependency) || (graph.isInstanceOf(d, sr.Flow) && graph.isInstanceOf(r, sr.Stock))) { @@ -156,6 +146,20 @@ public class ValidationUtils { } } } + + // Add also the outgoing flows + Collection outgoingFlows = graph.getObjects(r, sr.Variable_isTailOf); + for(Resource f : outgoingFlows) { + if(graph.isInstanceOf(f, sr.Flow) && graph.isInstanceOf(r, sr.Stock)) { + Resource head = graph.getPossibleObject(f, sr.Variable_HasHead); + if(head != null) { + + Object name = graph.getPossibleRelatedValue(head, l0.HasName); + if(name != null) + variables.add((String)name); + } + } + } } return variables; } diff --git a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/StockExpression.java b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/StockExpression.java index ba6916cc..c96d01e4 100644 --- a/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/StockExpression.java +++ b/org.simantics.sysdyn/src/org/simantics/sysdyn/representation/expressions/StockExpression.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2010, 2012 Association for Decentralized Information Management in + * Copyright (c) 2010, 2014 Association for Decentralized Information Management in * Industry THTH ry. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -42,12 +42,15 @@ import org.simantics.sysdyn.representation.utils.UnitUtils; @GraphType(SysdynResource.URIs.StockExpression) public class StockExpression extends Expression { - @RelatedValue(SysdynResource.URIs.StockExpression_initialEquation) + @RelatedValue(SysdynResource.URIs.StockExpression_initialEquation) private String initialEquation; + @RelatedValue(SysdynResource.URIs.StockExpression_integralEquation) + private String integralEquation; + @Override public String getExpression() { - return initialEquation; + return "This + is + not + a + parameter + at + any + time"; } @Override @@ -67,33 +70,39 @@ public class StockExpression extends Expression { .append(parent.getModelicaName() + range) .append(") ="); - // Stock equation is formed automatically using incoming and outgoing flows (actually the nearest valves in those flows) - ArrayList incoming = ((Stock)parent).getIncomingValves(); - ArrayList outgoing = ((Stock)parent).getOutgoingValves(); - if(incoming.isEmpty() && outgoing.isEmpty()) { - // No connections, add 0 for each array index if any. - ArrayList enumerations = parent.getArrayIndexes(); - if(enumerations == null || enumerations.isEmpty()) { - b.append(" 0.0"); - } else { - b.append(" zeros("); - for(int i = 0; i < enumerations.size(); i++) { - b.append(enumerations.get(i).getModelicaName() + ".size"); - if(i != enumerations.size() - 1) - b.append(", "); - } - b.append(")"); - } - + if (integralEquation != null) { + String equation = FormatUtils.replaceWhitespace(this.integralEquation); + equation = FormatUtils.formatExpressionForModelica(parent, equation); + b.append(equation).append(";\n"); } else { - // incoming valves add and outgoing valves reduce the stock - for(Valve valve : outgoing) - b.append("\n - ").append(valve.getModelicaName() + range); - for(Valve valve : incoming) - b.append("\n + ").append(valve.getModelicaName() + range); + // Stock equation is formed automatically using incoming and outgoing flows (actually the nearest valves in those flows) + ArrayList incoming = ((Stock)parent).getIncomingValves(); + ArrayList outgoing = ((Stock)parent).getOutgoingValves(); + if(incoming.isEmpty() && outgoing.isEmpty()) { + // No connections, add 0 for each array index if any. + ArrayList enumerations = parent.getArrayIndexes(); + if(enumerations == null || enumerations.isEmpty()) { + b.append(" 0.0"); + } else { + b.append(" zeros("); + for(int i = 0; i < enumerations.size(); i++) { + b.append(enumerations.get(i).getModelicaName() + ".size"); + if(i != enumerations.size() - 1) + b.append(", "); + } + b.append(")"); + } + + } else { + // incoming valves add and outgoing valves reduce the stock + for(Valve valve : outgoing) + b.append("\n - ").append(valve.getModelicaName() + range); + for(Valve valve : incoming) + b.append("\n + ").append(valve.getModelicaName() + range); + } + b.append(";\n"); } - b.append(";\n"); - return b.toString(); + return b.toString(); } /** @@ -188,7 +197,7 @@ public class StockExpression extends Expression { public String validateUnits(ReadGraph graph, SysdynModel model) { String result = UnitUtils.matchUnits(graph, model, parent.getParentConfiguration(), parent.getUnit(), initialEquation); if(result == null) { - String integralEquation = getEquation(); + String integralEquation = getEquation(); if(integralEquation.contains("=")) result = UnitUtils.matchUnits( graph, -- 2.47.1