/// <summary> /// Specifies the control object for application startup; overrides any startup arguments (<see cref="CommandLineArguments"/>) /// set so far. /// </summary> public void SetControlObject(BoSSS.Solution.Control.AppControl ctrl) { byte[] buffer; using (var ms = new MemoryStream()) { var bf = new BinaryFormatter(); bf.Serialize(ms, ctrl); buffer = ms.GetBuffer(); } AdditionalDeploymentFiles.Add(new Tuple <byte[], string>(buffer, "control.obj")); string PrjName = InteractiveShell.WorkflowMgm.CurrentProject; if (string.IsNullOrWhiteSpace(PrjName)) { throw new NotSupportedException("Project management not initialized - set project name (try e.g. 'WorkflowMgm.CurrentProject = \"BlaBla\"')."); } string[] args = new string[] { "--control", "control.obj", "--prjnmn", PrjName, "--sesnmn", this.Name }; for (int i = 0; i < args.Length; i++) { m_EnvironmentVars.Add("BOSSS_ARG_" + i, args[i]); } }
/* * /// <summary> * /// Specifies command line arguments for application startup; overrides any startup arguments (<see cref="CommandLineArguments"/>) * /// set so far. * /// </summary> * public void SetControlCode(string code) { * AddTextFile(code, "control.cs"); * * string PrjName = InteractiveShell.WorkflowMgm.CurrentProject; * if (string.IsNullOrWhiteSpace(PrjName)) { * throw new NotSupportedException("Project management not initialized - set project name (try e.g. 'WorkflowMgm.CurrentProject = \"BlaBla\"')."); * } * * string[] args = new string[] { * "--control", "control.cs", * "--prjnmn", PrjName, * "--sesnmn", this.Name * }; * * for (int i = 0; i < args.Length; i++) { * m_EnvironmentVars.Add("BOSSS_ARG_" + i, args[i]); * } * } */ /// <summary> /// Specifies the control object for application startup; overrides any startup arguments (<see cref="CommandLineArguments"/>) /// set so far. /// </summary> public void SetControlObject(BoSSS.Solution.Control.AppControl ctrl) { TestActivation(); // serialize control object // ======================== ctrl.VerifyEx(); string ControlName, text; int index = -1; if (ctrl.GeneratedFromCode) { text = ctrl.ControlFileText; ControlName = "control.cs"; index = ctrl.ControlFileText_Index; } else { text = ctrl.Serialize(); ControlName = "control.obj"; } byte[] buffer = Encoding.UTF8.GetBytes(text); AdditionalDeploymentFiles.Add(new Tuple <byte[], string>(buffer, ControlName)); // Project & Session Name // ====================== string PrjName = InteractiveShell.WorkflowMgm.CurrentProject; if (string.IsNullOrWhiteSpace(PrjName)) { throw new NotSupportedException("Project management not initialized - set project name (try e.g. 'WorkflowMgm.CurrentProject = \"BlaBla\"')."); } string[] args = new string[] { "--control", "control.obj", "--prjnmn", PrjName, "--sesnmn", this.Name }; if (index >= 0) { ArrayTools.Cat(args, "--pstudy_case", index.ToString()); } for (int i = 0; i < args.Length; i++) { m_EnvironmentVars.Add("BOSSS_ARG_" + i, args[i]); } // }
public override void Init(BoSSS.Solution.Control.AppControl control) { control.GridPartType = BoSSS.Foundation.Grid.GridPartType.none; base.Init(control); }
public override void Init(BoSSS.Solution.Control.AppControl control) { //control.GridPartType = BoSSS.Foundation.Grid.GridPartType.none; control.LinearSolver.NoOfMultigridLevels = 1; base.Init(control); }
/// <summary> /// Specifies the control object for application startup; overrides any startup arguments (<see cref="CommandLineArguments"/>) /// set so far. /// </summary> public void SetControlObject(BoSSS.Solution.Control.AppControl ctrl) { TestActivation(); // serialize control object // ======================== // grid function hack: if (ctrl.GridFunc != null) { Console.WriteLine("Control object contains grid function. Trying to Serialize the grid..."); var dbi = ctrl.GetDatabase(); if (dbi == null) { throw new NotSupportedException("If a gird function is specified (instead of a grid id), a database must be specified to save the gird (when using the job manager)."); } Foundation.Grid.IGrid g = ctrl.GridFunc(); Guid id = dbi.SaveGrid(ref g); ctrl.GridFunc = null; ctrl.GridGuid = id; Console.WriteLine("Control object modified."); } ctrl.VerifyEx(); m_ctrl = ctrl; m_ctrl.ProjectName = InteractiveShell.WorkflowMgm.CurrentProject; // note: serialization is done later, immediately before deployment, // since we may need to fix database issues (path on batch system, evtl. transfer of grid) m_ctrl_index = -1; if (m_ctrl.GeneratedFromCode) { ControlName = "control.cs"; m_ctrl_index = m_ctrl.ControlFileText_Index; } else { ControlName = "control.obj"; } // Project & Session Name // ====================== string PrjName = InteractiveShell.WorkflowMgm.CurrentProject; if (string.IsNullOrWhiteSpace(PrjName)) { throw new NotSupportedException("Project management not initialized - set project name (try e.g. 'WorkflowMgm.CurrentProject = \"BlaBla\"')."); } string[] args = new string[] { "--control", "control.obj", "--prjnmn", PrjName, "--sesnmn", this.Name }; if (m_ctrl_index >= 0) { ArrayTools.Cat(args, "--pstudy_case", m_ctrl_index.ToString()); } m_EnvironmentVars.Clear(); for (int i = 0; i < args.Length; i++) { m_EnvironmentVars.Add("BOSSS_ARG_" + i, args[i]); } // }