static void Main(string[] args) { /* * This program primarily demonstrates how to wrap and calibrate a model written * in a native language. While technological aspects of what it demonstrates * are not inherently limited nor specific to optimisation, this is * a use case often encountered (e.g. to calibrate existing models written in * C++ , C, or Fortran) */ IClonableObjectiveEvaluator <IHyperCube <double> > evaluator; IEvolutionEngine <IHyperCube <double> > uniformRandomSampling; NativeModelWrapper.AwbmWrapper.PermitMultiThreading = true; using (var simulation = new AwbmWrapper()) { var data = DataHandling.GetSampleClimate(); SimulationFactory.SetSampleSimulation(simulation, data); int from = simulation.GetStart(); int to = simulation.GetEnd(); evaluator = AWBM_URS.MainClass.BuildUrsEvaluator(simulation, data.Runoff, from, to); var paramSpace = AWBM_URS.MainClass.CreateFeasibleAwbmParameterSpace(simulation); uniformRandomSampling = new UniformRandomSampling <IHyperCube <double> >(evaluator, new BasicRngFactory(0), paramSpace, 3000); var ursResults = uniformRandomSampling.Evolve(); Console.WriteLine(MetaheuristicsHelper.GetHumanReadable(ursResults)); } }
public static void Main(string[] args) { /* * The context of this tutorial is that you have an existing time stepping simulation * model. */ IClonableObjectiveEvaluator <IHyperCube <double> > evaluator; IEvolutionEngine <IHyperCube <double> > uniformRandomSampling; var simulation = SimulationFactory.CreateAwbmSimulation(); var data = DataHandling.GetSampleClimate(); SimulationFactory.SetSampleSimulation(simulation, data); int from = simulation.GetStart(); int to = simulation.GetEnd(); evaluator = BuildUrsEvaluator(simulation, data.Runoff, from, to); var paramSpace = CreateFeasibleAwbmParameterSpace(simulation); uniformRandomSampling = new UniformRandomSampling <IHyperCube <double> >(evaluator, new BasicRngFactory(0), paramSpace, 3000); var ursResults = uniformRandomSampling.Evolve(); Console.WriteLine(MetaheuristicsHelper.GetHumanReadable(ursResults)); }
protected override void Context() { _objectBaseFactory = A.Fake <IObjectBaseFactory>(); _simulationBuildingBlockUpdater = A.Fake <ISimulationBuildingBlockUpdater>(); _simulationModelCreator = A.Fake <ISimulationModelCreator>(); _simulationParametersUpdater = A.Fake <ISimulationParametersUpdater>(); _modelPropertiesTask = A.Fake <IModelPropertiesTask>(); _cloner = A.Fake <ICloner>(); _diagramModelFactory = A.Fake <IDiagramModelFactory>(); _interactionTask = A.Fake <IInteractionTask>(); _individual = A.Fake <Individual>(); _compounds = new List <Compound>(); A.CallTo(() => _individual.BuildingBlockType).Returns(PKSimBuildingBlockType.Individual); _population = A.Fake <Population>(); A.CallTo(() => _population.BuildingBlockType).Returns(PKSimBuildingBlockType.Population); _originData = new OriginData(); _modelProperties = A.Fake <ModelProperties>(); _individualSimulation = A.Fake <IndividualSimulation>(); _populationSimulation = A.Fake <PopulationSimulation>(); _objectIdResetter = A.Fake <IObjectIdResetter>(); _compoundPropertiesUpdater = A.Fake <ICompoundPropertiesUpdater>(); A.CallTo(() => _objectBaseFactory.Create <IndividualSimulation>()).Returns(_individualSimulation); A.CallTo(() => _objectBaseFactory.Create <PopulationSimulation>()).Returns(_populationSimulation); _individual.OriginData = _originData; A.CallTo(() => _individual.Organism).Returns(A.Fake <Organism>()); sut = new SimulationFactory(_objectBaseFactory, _simulationBuildingBlockUpdater, _simulationModelCreator, _objectIdResetter, _compoundPropertiesUpdater, _simulationParametersUpdater, _modelPropertiesTask, _cloner, _diagramModelFactory, _interactionTask); }
protected override void Context() { _idGenerator = A.Fake <IIdGenerator>(); _metaDataFactory = A.Fake <ICreationMetaDataFactory>(); _parameterIdUpdater = A.Fake <ISimulationParameterOriginIdUpdater>(); _diagramManagerFactory = A.Fake <IDiagramManagerFactory>(); sut = new SimulationFactory(_idGenerator, _metaDataFactory, _parameterIdUpdater, _diagramManagerFactory); }
public static void Main() { if (!Settings.ShowFullOutput) { Log.Options = new SummaryOnlyLogOptions(); } SimulationFactory .CreateSimulation() .Execute(); System.Console.ReadLine(); }
/// <summary> /// /// </summary> /// <param name="reader"></param> public void ReadXml(XmlReader reader) { XDocument doc = XDocument.Load(reader); //Get the list of models XElement projectElement = doc.Element("Project"); //Set the project properties CreatedBy = XMLUtilities.readXMLAttribute(projectElement.Attribute("CreatedBy")); DateTime?createdDate = DateUtilities.TryParseDate(XMLUtilities.readXMLAttribute(projectElement.Attribute("CreationDate")).Split(new char[] { ' ' })[0], "dd/MM/yyyy"); CreatedDate = createdDate == null ? new DateTime(1, 1, 1) : createdDate.Value; ContactDetails = XMLUtilities.readXMLAttribute(projectElement.Attribute("ContactDetails")); ModifiedBy = XMLUtilities.readXMLAttribute(projectElement.Attribute("ModifiedBy")); Name = projectElement.Element("Name").Value.ToString(); //Read all of the climate data models List <XElement> ClimateDatalements = new List <XElement>(projectElement.Elements("ClimateData").Elements("DataFile")); //Read all of the models List <XElement> TemplateElements = new List <XElement>(projectElement.Elements().Where(x => x.Name.ToString().Contains("Templates"))); List <XElement> TypeElements = new List <XElement>(); foreach (XElement te in TemplateElements) { foreach (XElement xe in te.Elements()) { TypeElements.Add(xe); } } //Read all of the simualtions SimulationElements = new List <XElement>(); foreach (XElement simChild in projectElement.Elements("Simulations").Elements()) { if (simChild.Name.ToString() == "SimulationObject") { SimulationElements.Add(simChild); } else if (simChild.Name.ToString() == "Folder") { SimulationElements.AddRange(simChild.Elements("SimulationObject")); } } InputDataModels = new List <InputModel>(); //Create input models from the xml elements foreach (XElement xe in TypeElements) { InputDataModels.Add(RawInputModelFactory.GenerateRawInputModel(xe)); } //Create the Climate models - these aren't deserialised so don't come out of the factory foreach (XElement xe in ClimateDatalements) { ClimateInputModel cim = new ClimateInputModel(); cim.FileName = xe.Attribute("href").Value.ToString(); InputDataModels.Add(cim); } //Initialise the models foreach (InputModel im in InputDataModels) { im.Init(); } //Create the simualtions foreach (XElement xe in SimulationElements) { Simulations.Add(SimulationFactory.GenerateSimulationXML(this, xe, InputDataModels)); } //Just one for testing //Simulations = new List<Simulation>(); //Simulations.Add(SimulationFactory.GenerateSimulationXML(SimulationElements[0], InputDataModels)); OutputDataElements = OutputModelController.GetProjectOutputs(this); }
public static void Initialize() { App.SimulationConfig = ConfigurationManager.GetSection("simulationConfig") as SimulationConfig; App.AnimalFactory = SimulationFactory.GetAnimalFactory(); }