diff --git a/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/AbstractSimulator.java b/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/AbstractSimulator.java index da811aac7..957b6c625 100644 --- a/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/AbstractSimulator.java +++ b/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/AbstractSimulator.java @@ -13,7 +13,12 @@ *******************************************************************************/ package edu.utah.ece.async.ibiosim.analysis.simulation; +import java.io.IOException; + +import javax.xml.stream.XMLStreamException; + import edu.utah.ece.async.ibiosim.dataModels.util.Message; +import edu.utah.ece.async.ibiosim.dataModels.util.exceptions.BioSimException; import edu.utah.ece.async.ibiosim.dataModels.util.observe.CoreObservable; /** @@ -24,11 +29,30 @@ import edu.utah.ece.async.ibiosim.dataModels.util.observe.CoreObservable; * @version $Rev$ * @version %I% */ -public abstract class AbstractSimulator extends CoreObservable implements ParentSimulator +public abstract class AbstractSimulator extends CoreObservable { + protected final Message message = new Message(); + + /** + * + */ + public abstract void simulate() throws IOException, XMLStreamException, BioSimException; + + /** + * + */ + public abstract void cancel(); + + + /** + * + * @param newRun + */ + public abstract void setupForNewRun(int newRun) throws IOException; + + /** + * + */ + public abstract void printStatisticsTSD(); - protected final Message message = new Message(); - - - } diff --git a/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/ParentSimulator.java b/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/ParentSimulator.java deleted file mode 100644 index ac7d019a2..000000000 --- a/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/ParentSimulator.java +++ /dev/null @@ -1,66 +0,0 @@ -/******************************************************************************* - * - * This file is part of iBioSim. Please visit - * for the latest version of iBioSim. - * - * Copyright (C) 2017 University of Utah - * - * This library is free software; you can redistribute it and/or modify it - * under the terms of the Apache License. A copy of the license agreement is provided - * in the file named "LICENSE.txt" included with this software distribution - * and also available online at . - * - *******************************************************************************/ -package edu.utah.ece.async.ibiosim.analysis.simulation; - -import java.io.IOException; - -import javax.xml.stream.XMLStreamException; - -import edu.utah.ece.async.ibiosim.dataModels.util.exceptions.BioSimException; - -/** - * - * - * @author Leandro Watanabe - * @author Chris Myers - * @author iBioSim Contributors - * @version %I% - */ -public interface ParentSimulator -{ - /** - * - */ - public abstract void simulate() throws IOException, XMLStreamException, BioSimException; - - /** - * - */ - public abstract void cancel(); - - /** - * - */ - public abstract void clear(); - - /** - * - * @param newRun - */ - public abstract void setupForNewRun(int newRun) throws IOException; - - /** - * - */ - public abstract void printStatisticsTSD(); - - /** - * - * @param randomSeed - * @param runNumber - * @throws IOException - * @throws XMLStreamException - */ - public abstract void initialize(long randomSeed, int runNumber) throws IOException, XMLStreamException, BioSimException; -} diff --git a/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/flattened/Simulator.java b/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/flattened/Simulator.java index 6693748b6..6df9ff099 100644 --- a/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/flattened/Simulator.java +++ b/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/flattened/Simulator.java @@ -525,7 +525,6 @@ public abstract class Simulator extends AbstractSimulator /** * clears data structures for new run */ - @Override public abstract void clear(); /** diff --git a/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/flattened/SimulatorODERK.java b/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/flattened/SimulatorODERK.java index 0ddd5199d..c7bc859a0 100644 --- a/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/flattened/SimulatorODERK.java +++ b/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/flattened/SimulatorODERK.java @@ -67,7 +67,6 @@ public class SimulatorODERK extends Simulator initialize(randomSeed, 1); } - @Override public void initialize(long randomSeed, int runNumber) throws IOException { diff --git a/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/flattened/SimulatorSSACR.java b/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/flattened/SimulatorSSACR.java index f2fb6309a..fcc71eae7 100644 --- a/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/flattened/SimulatorSSACR.java +++ b/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/flattened/SimulatorSSACR.java @@ -452,7 +452,6 @@ public class SimulatorSSACR extends Simulator * @throws IOException * @throws XMLStreamException */ - @Override public void initialize(long randomSeed, int runNumber) throws IOException { diff --git a/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/flattened/SimulatorSSADirect.java b/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/flattened/SimulatorSSADirect.java index 88920a392..c67dba6a3 100644 --- a/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/flattened/SimulatorSSADirect.java +++ b/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/flattened/SimulatorSSADirect.java @@ -225,7 +225,6 @@ public class SimulatorSSADirect extends Simulator * @throws IOException * @throws XMLStreamException */ - @Override public void initialize(long randomSeed, int runNumber) throws IOException { diff --git a/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/HierarchicalSimulation.java b/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/HierarchicalSimulation.java index f63bed458..97b3f6f90 100644 --- a/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/HierarchicalSimulation.java +++ b/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/HierarchicalSimulation.java @@ -17,18 +17,12 @@ import java.io.File; import java.io.IOException; import java.math.BigDecimal; import java.util.ArrayList; -import java.util.HashSet; import java.util.List; import java.util.PriorityQueue; import java.util.Random; -import java.util.Set; import javax.xml.stream.XMLStreamException; -import org.sbml.jsbml.SBMLDocument; -import org.sbml.jsbml.SBMLErrorLog; -import org.sbml.jsbml.SBMLReader; - import edu.utah.ece.async.ibiosim.analysis.properties.AnalysisProperties; import edu.utah.ece.async.ibiosim.analysis.properties.SimulationProperties; import edu.utah.ece.async.ibiosim.analysis.simulation.AbstractSimulator; @@ -69,15 +63,11 @@ public abstract class HierarchicalSimulation extends AbstractSimulator private boolean cancelFlag; private int currentRun; - private boolean printConcentrations; - private boolean sbmlHasErrorsFlag; - private String abstraction; protected PriorityQueue triggeredEventList; protected boolean isInitialized; protected boolean hasEvents; - private boolean isGrid; private Random randomNumberGenerator; private HierarchicalModel topmodel; @@ -126,9 +116,7 @@ public abstract class HierarchicalSimulation extends AbstractSimulator { this.properties = copy.properties; this.printTime = copy.printTime; - this.abstraction = copy.abstraction; this.type = copy.type; - this.isGrid = copy.isGrid; this.topmodel = copy.topmodel; this.currentTime = copy.currentTime; this.randomNumberGenerator = copy.randomNumberGenerator; @@ -177,7 +165,7 @@ public abstract class HierarchicalSimulation extends AbstractSimulator /** * @return the cancelFlag */ - public boolean isCancelFlag() + protected boolean isCancelFlag() { return cancelFlag; } @@ -199,23 +187,6 @@ public abstract class HierarchicalSimulation extends AbstractSimulator } - /** - * @return the printConcentrations - */ - public boolean isPrintConcentrations() - { - return printConcentrations; - } - - /** - * @return the sbmlHasErrorsFlag - */ - public boolean isSbmlHasErrorsFlag() - { - return sbmlHasErrorsFlag; - } - - /** * @param cancelFlag * the cancelFlag to set @@ -244,52 +215,12 @@ public abstract class HierarchicalSimulation extends AbstractSimulator } - - - /** - * @param printConcentrations - * the printConcentrations to set - */ - public void setPrintConcentrations(boolean printConcentrations) - { - this.printConcentrations = printConcentrations; - } - - - /** - * @param sbmlHasErrorsFlag - * the sbmlHasErrorsFlag to set - */ - public void setSbmlHasErrorsFlag(boolean sbmlHasErrorsFlag) - { - this.sbmlHasErrorsFlag = sbmlHasErrorsFlag; - } - - /** - * - * @return - */ - public String getAbstraction() - { - return abstraction; - } - - /** - * - * @param abstraction - */ - public void setAbstraction(String abstraction) - { - this.abstraction = abstraction; - } - - /** * @return the randomNumberGenerator */ - public Random getRandomNumberGenerator() + protected double getRandom() { - return randomNumberGenerator; + return randomNumberGenerator.nextDouble(); } @@ -302,22 +233,6 @@ public abstract class HierarchicalSimulation extends AbstractSimulator return topmodel; } - /** - * @return the isGrid - */ - public boolean isGrid() - { - return isGrid; - } - /** - * @param isGrid - * the isGrid to set - */ - public void setGrid(boolean isGrid) - { - this.isGrid = isGrid; - } - /** * @param topmodel * the topmodel to set diff --git a/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/methods/HierarchicalFBASimulator.java b/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/methods/HierarchicalFBASimulator.java index 649df342b..152a30eaf 100644 --- a/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/methods/HierarchicalFBASimulator.java +++ b/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/methods/HierarchicalFBASimulator.java @@ -86,13 +86,6 @@ class HierarchicalFBASimulator extends HierarchicalSimulation } - @Override - public void clear() - { - // TODO Auto-generated method stub - - } - @Override public void setupForNewRun(int newRun) { @@ -107,12 +100,6 @@ class HierarchicalFBASimulator extends HierarchicalSimulation } - @Override - public void initialize(long randomSeed, int runNumber) throws IOException, XMLStreamException - { - - } - public void getState() { diff --git a/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/methods/HierarchicalMixedSimulator.java b/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/methods/HierarchicalMixedSimulator.java index e3c3b9c29..81376d22e 100644 --- a/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/methods/HierarchicalMixedSimulator.java +++ b/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/methods/HierarchicalMixedSimulator.java @@ -55,7 +55,6 @@ public final class HierarchicalMixedSimulator extends HierarchicalSimulation } - @Override public void initialize(long randomSeed, int runNumber) throws IOException, XMLStreamException, BioSimException { if (!isInitialized) @@ -136,11 +135,6 @@ public final class HierarchicalMixedSimulator extends HierarchicalSimulation { } - @Override - public void clear() - { - } - @Override public void setupForNewRun(int newRun) { diff --git a/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/methods/HierarchicalODERKSimulator.java b/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/methods/HierarchicalODERKSimulator.java index 5c110d1ae..eee3b4dc7 100644 --- a/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/methods/HierarchicalODERKSimulator.java +++ b/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/methods/HierarchicalODERKSimulator.java @@ -81,14 +81,7 @@ public final class HierarchicalODERKSimulator extends HierarchicalSimulation { public void cancel() { setCancelFlag(true); } - - - @Override - public void clear() { - } - - - @Override + public void initialize(long randomSeed, int runNumber) throws IOException, XMLStreamException, BioSimException { if (!isInitialized) { diff --git a/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/methods/HierarchicalSSADirectSimulator.java b/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/methods/HierarchicalSSADirectSimulator.java index de4746c24..f9157bc30 100644 --- a/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/methods/HierarchicalSSADirectSimulator.java +++ b/analysis/src/main/java/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/methods/HierarchicalSSADirectSimulator.java @@ -62,8 +62,6 @@ public class HierarchicalSSADirectSimulator extends HierarchicalSimulation } - - @Override public void initialize(long randomSeed, int runNumber) throws IOException, XMLStreamException, BioSimException { if (!isInitialized) @@ -102,15 +100,6 @@ public class HierarchicalSSADirectSimulator extends HierarchicalSimulation setCancelFlag(true); } - /** - * clears data structures for new run - */ - @Override - public void clear() - { - - } - @Override public void setupForNewRun(int newRun) throws IOException { @@ -129,10 +118,6 @@ public class HierarchicalSSADirectSimulator extends HierarchicalSimulation double r1 = 0, r2 = 0, totalPropensity = 0, delta_t = 0, nextReactionTime = 0, previousTime = 0, nextEventTime = 0, nextMaxTime = 0; double timeLimit = simProperties.getTimeLimit(); double maxTimeStep = simProperties.getMaxTimeStep(); - if (isSbmlHasErrorsFlag()) - { - return; - } if (!isInitialized) { @@ -149,8 +134,8 @@ public class HierarchicalSSADirectSimulator extends HierarchicalSimulation // return; // } double currentTime = this.currentTime.getState().getStateValue(); - r1 = getRandomNumberGenerator().nextDouble(); - r2 = getRandomNumberGenerator().nextDouble(); + r1 = getRandom(); + r2 = getRandom(); computePropensities(); totalPropensity = getTotalPropensity(); delta_t = Math.log(1 / r1) / totalPropensity; diff --git a/analysis/src/test/java/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/HierarchyTest.java b/analysis/src/test/java/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/HierarchyTest.java index 93a46755f..b77264540 100644 --- a/analysis/src/test/java/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/HierarchyTest.java +++ b/analysis/src/test/java/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/HierarchyTest.java @@ -2,19 +2,46 @@ package edu.utah.ece.async.ibiosim.analysis.simulation.hierarchical; import static org.junit.Assert.*; +import java.io.IOException; + +import javax.xml.stream.XMLStreamException; + import org.junit.Before; import org.junit.Test; +import edu.utah.ece.async.ibiosim.analysis.properties.AnalysisProperties; +import edu.utah.ece.async.ibiosim.analysis.simulation.hierarchical.methods.HierarchicalSSADirectSimulator; +import edu.utah.ece.async.ibiosim.analysis.simulation.hierarchical.model.HierarchicalModel; +import edu.utah.ece.async.ibiosim.analysis.simulation.hierarchical.model.HierarchicalModel.ModelType; +import edu.utah.ece.async.ibiosim.analysis.simulation.hierarchical.util.setup.ModelSetup; +import edu.utah.ece.async.ibiosim.dataModels.util.exceptions.BioSimException; + public class HierarchyTest { - + private AnalysisProperties properties; @Before public void setUp() throws Exception { + String root = HierarchyTest.class.getResource(".").getPath(); + properties = new AnalysisProperties("", "", root, false); } @Test - public void test() { - fail("Not yet implemented"); + public void test_basic_setup() { + try { + properties.setModelFile("00001-sbml-l3v2.xml"); + HierarchicalSimulation simulator = new HierarchicalSSADirectSimulator(properties); + ModelSetup.setupModels(simulator, ModelType.NONE); + assertEquals(simulator.getListOfHierarchicalModels().size(), 1); + + HierarchicalModel model = simulator.getListOfHierarchicalModels().get(0); + assertEquals(model.getReactions().size(), 1); + assertEquals(model.getNode("S1").getState().getState(0).getStateValue(), 0.00015, 1e-9); + assertEquals(model.getNode("S2").getState().getState(0).getStateValue(), 0, 0); + assertEquals(model.getNode("compartment").getState().getState(0).getStateValue(), 1, 0); + assertEquals(model.getNode("k1").getState().getState(0).getStateValue(), 1, 0); + } catch (IOException | XMLStreamException | BioSimException e) { + fail("Could not initialize"); + } } } diff --git a/analysis/src/test/resources/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/00001-sbml-l3v2.xml b/analysis/src/test/resources/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/00001-sbml-l3v2.xml new file mode 100644 index 000000000..23fbaac24 --- /dev/null +++ b/analysis/src/test/resources/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/00001-sbml-l3v2.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + compartment + k1 + S1 + + + + + + + diff --git a/analysis/src/test/resources/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/00029-sbml-l3v2.xml b/analysis/src/test/resources/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/00029-sbml-l3v2.xml new file mode 100644 index 000000000..f102690ea --- /dev/null +++ b/analysis/src/test/resources/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/00029-sbml-l3v2.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 7 + + + + + diff --git a/analysis/src/test/resources/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/00119-sbml-l3v2.xml b/analysis/src/test/resources/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/00119-sbml-l3v2.xml new file mode 100644 index 000000000..b66870591 --- /dev/null +++ b/analysis/src/test/resources/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/00119-sbml-l3v2.xml @@ -0,0 +1,79 @@ + + + + + + + + + x + + + y + + + + x + y + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + compartment + k1 + + multiply + S1 + S3 + + + + + + + + diff --git a/analysis/src/test/resources/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/00163-sbml-l3v2.xml b/analysis/src/test/resources/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/00163-sbml-l3v2.xml new file mode 100644 index 000000000..38d22a9ce --- /dev/null +++ b/analysis/src/test/resources/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/00163-sbml-l3v2.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + k2 + S2 + + + + -1 + k1 + S1 + + + + + + + + + + + k1 + S1 + + + + -1 + k2 + S2 + + + + + + + diff --git a/analysis/src/test/resources/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/00171-sbml-l3v2.xml b/analysis/src/test/resources/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/00171-sbml-l3v2.xml new file mode 100644 index 000000000..d5cdd711a --- /dev/null +++ b/analysis/src/test/resources/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/00171-sbml-l3v2.xml @@ -0,0 +1,60 @@ + + + + + + + + + x + + + y + + + + x + y + + + + + + + + + + + + + + + + + + + + + + + -1 + + multiply + k1 + S1 + + + + + + + + multiply + k1 + S1 + + + + + + diff --git a/analysis/src/test/resources/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/01311-sbml-l3v2.xml b/analysis/src/test/resources/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/01311-sbml-l3v2.xml new file mode 100644 index 000000000..b22481c6f --- /dev/null +++ b/analysis/src/test/resources/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/01311-sbml-l3v2.xml @@ -0,0 +1,45 @@ + + + + + + + + + 3 + + + + + + + + three + + + + + + + + + getthree + + + + + + + + + + + + + getgetthree + + + + + + diff --git a/analysis/src/test/resources/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/README.md b/analysis/src/test/resources/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/README.md new file mode 100644 index 000000000..b39625f73 --- /dev/null +++ b/analysis/src/test/resources/edu/utah/ece/async/ibiosim/analysis/simulation/hierarchical/README.md @@ -0,0 +1,10 @@ +# Test cases for the hierarchical simulator + +## From the SBML Test Suite + +- 00001-sbml-l3v2.xml +- 00029-sbml-l3v2.xml +- 00119-sbml-l3v2.xml +- 00163-sbml-l3v2.xml +- 00171-sbml-l3v2.xml +- 01311-sbml-l3v2.xml diff --git a/learn/src/main/java/edu/utah/ece/async/ibiosim/learn/parameterestimator/ParameterEstimator.java b/learn/src/main/java/edu/utah/ece/async/ibiosim/learn/parameterestimator/ParameterEstimator.java index 6bc775e1b..f66740bfe 100644 --- a/learn/src/main/java/edu/utah/ece/async/ibiosim/learn/parameterestimator/ParameterEstimator.java +++ b/learn/src/main/java/edu/utah/ece/async/ibiosim/learn/parameterestimator/ParameterEstimator.java @@ -44,18 +44,6 @@ import edu.utah.ece.async.ibiosim.learn.parameterestimator.methods.sres.SRES; */ public class ParameterEstimator { - static double relativeError = 1e-6; - static double absoluteError = 1e-9; - static int numSteps; - static double maxTimeStep = Double.POSITIVE_INFINITY; - static double minTimeStep = 0.0; - static long randomSeed = 0; - static int runs = 1; - static double stoichAmpValue = 1.0; - static boolean genStats = false; - static String selectedSimulator = ""; - static ArrayList interestingSpecies = new ArrayList(); - static String quantityType = "amount"; /** * This function is used to execute parameter estimation from a given SBML file. The input model serves @@ -83,7 +71,6 @@ public class ParameterEstimator double[] lowerbounds = new double[numberofparameters]; double[] upperbounds = new double[numberofparameters]; HierarchicalSimulation sim = new HierarchicalODERKSimulator(properties, false); - sim.initialize(randomSeed, 0); for (int i = 0; i < numberofparameters; i++) {