public ISimulation CreateWithCalculationMethodsFrom(ISimulation templateSimulation, IEnumerable <CalculationMethodWithCompoundName> combination) { var simulation = templateSimulation.DowncastTo <IndividualSimulation>(); var newSimulation = createModelLessSimulationBasedOn(simulation); combination.GroupBy(x => x.CompoundName).Each(grouping => { replaceCalculationMethodsWithNewCalculationMethods(grouping, newSimulation.CompoundPropertiesFor(grouping.Key)); }); _simulationModelCreator.CreateModelFor(newSimulation); return(newSimulation); }
private async Task <ModelSimulation> createSimulationFrom(SnapshotSimulation snapshot, PKSimProject project) { var simulation = await createModelLessSimulationFrom(snapshot, project); _simulationModelCreator.CreateModelFor(simulation); return(simulation); }
private async Task <ModelSimulation> createSimulationFrom(SnapshotSimulation snapshot, SnapshotContext snapshotContext) { var simulation = await createModelLessSimulationFrom(snapshot, snapshotContext); _simulationModelCreator.CreateModelFor(simulation); return(simulation); }
public void AddModelToSimulation(Model.Simulation simulation) { _simulationModelCreator.CreateModelFor(simulation); simulation.Solver.Parameter(Constants.Parameters.ABS_TOL).Value = CoreConstants.DEFAULT_ABS_TOL; simulation.Solver.Parameter(Constants.Parameters.REL_TOL).Value = CoreConstants.DEFAULT_REL_TOL; _registrationTask.Register(simulation); }
private Task <IndividualSimulation> createNewSimulationBasedOn(IndividualSimulation individualSimulation, IPKSimProject project) { return(Task.Run(() => { var otherSimulation = _executionContext.Clone(individualSimulation); var individual = allTemplateBuildingBlocksFor <Individual>(otherSimulation, project).First(); var compounds = allTemplateBuildingBlocksFor <Compound>(otherSimulation, project); otherSimulation = _simulationFactory.CreateFrom(individual, compounds, otherSimulation.ModelProperties, otherSimulation) .DowncastTo <IndividualSimulation>(); _simulationModelCreator.CreateModelFor(otherSimulation); _executionContext.Register(otherSimulation); return otherSimulation; })); }