Esempio n. 1
0
        /// <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]);
            }
        }
Esempio n. 2
0
        /*
         * /// <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]);
            }

            //
        }
Esempio n. 3
0
 public override void Init(BoSSS.Solution.Control.AppControl control)
 {
     control.GridPartType = BoSSS.Foundation.Grid.GridPartType.none;
     base.Init(control);
 }
Esempio n. 4
0
 public override void Init(BoSSS.Solution.Control.AppControl control)
 {
     //control.GridPartType = BoSSS.Foundation.Grid.GridPartType.none;
     control.LinearSolver.NoOfMultigridLevels = 1;
     base.Init(control);
 }
Esempio n. 5
0
        /// <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]);
            }

            //
        }