/// <summary> /// DoInitialize initializes the Aspen Engine if specified in the job contract. /// </summary> /// <param name="job"></param> /// <param name="stest"></param> /// <param name="defaultsDict"></param> private void DoInitialize(IJobConsumerContract job, sinter.ISimulation stest, JObject defaultsDict) { if (!job.Initialize()) { return; } Debug.WriteLine(String.Format("Start warm-up run on job {0}", job.Id), "SinterConsumer.Run"); try { stest.sendInputs(defaultsDict); } catch (Exception ex) { job.Error(String.Format( "Error sending Defaults to Aspen for warm-up run: {0}, traceback {1}", ex.Message, ex.StackTrace)); Debug.WriteLine(String.Format("Moved Job {0} to Error", job.Id), "SinterConsumer.Run"); throw; } job.Message("Warm-up inputs sent, running simulation"); Debug.WriteLine(String.Format("Calling run Simulation for warm-up on Job {0}", job.Id), "SinterConsumer.Run"); try { running = true; lock (this) { stest.sendInputsToSim(); stest.runSim(); stest.recvOutputsFromSim(); } running = false; if (isTerminated) { throw new TerminateException( "Monitor Terminated Initializing Simulation"); } } catch (Exception ex) { Debug.WriteLine(String.Format("Moving Job {0} to Error", job.Id), "SinterConsumer.Run"); job.Error(String.Format( "Error running warm-up simulation: {0}, traceback {1}", ex.Message, ex.StackTrace)); throw; } job.Message("Warm-up complete and successful. Reseting Sim for real run."); Debug.WriteLine(String.Format("Warm-up complete and successful. Reseting Sim for real run {0}", job.Id), "SinterConsumer.Run"); }