Exemplo n.º 1
0
 public OptionParams(OptionParams optionparams)
 {
     timeStores  = optionparams.timeStores;
     exportDpi   = optionparams.exportDpi;
     cflConstant = optionparams.cflConstant;
     setPath();
 }
Exemplo n.º 2
0
 public Model(ProModelInterface model, InParamsExt inParams, OutParams previewParams, OptionParams optionParams)
 {
     this.model         = model;
     this.inParams      = inParams;
     this.previewParams = previewParams;
     this.optionParams  = optionParams;
 }
Exemplo n.º 3
0
        void loadOptionParams()
        {
            XmlSerializer serializer = new XmlSerializer(typeof(OptionParams));

            try
            {
                optionParams = (OptionParams)serializer.Deserialize(new StreamReader(optionParams.filePath));
            }
            catch (Exception)
            {
            }
        }
Exemplo n.º 4
0
 public ProView(ProControllerInterface controller,
                ControlParams controlParams,
                OptionParams optionParams,
                ViewParams viewParams,
                ProModelInterface model)
 {
     this.controller    = controller;
     this.controlParams = controlParams;
     this.optionParams  = optionParams;
     this.viewParams    = viewParams;
     this.model         = model;
     model.registerPreviewObserver(this);
     model.registerModelObserver(this);
 }
Exemplo n.º 5
0
        public bool checkTransStability(OptionParams optionparams)
        {
            bool  condition1, condition2;
            float maxdelta1, maxdelta2u, maxdelta2l;
            int   columnsteps = column;
            int   timesteps = (int)Math.Round(columnsteps / optionparams.cflConstant);
            float dx = 1.0f / columnsteps;
            float dt = 1.0f / timesteps;
            float tm, tmu, tml;
            float maxk = 0;

            for (int compi = 0; compi < comps.Count; compi++)
            {
                if (comps[compi].k > maxk)
                {
                    maxk = comps[compi].k;
                }
            }
            maxk = Math.Max(maxk, 1.0f);

            maxdelta1  = dt / dx;                                                                   // CFL constant (should be same value as optionparams->cflconstant)
            condition1 = (maxdelta1 <= 1);                                                          // CFL

            tm  = convertUnit(column, QuantityType.Steps, QuantityType.Time, PhaseType.Both) * 60;  // assume [min] => [s]
            tmu = convertUnit(column, QuantityType.Steps, QuantityType.Time, PhaseType.Upper) * 60; // assume [min] => [s]
            tml = convertUnit(column, QuantityType.Steps, QuantityType.Time, PhaseType.Lower) * 60; // assume [min] => [s]
            if (tmu == 0)
            {
                tmu = tm;
            }
            if (tml == 0)
            {
                tml = tm;
            }

            maxdelta2u = (ka * maxk * tmu * dt / uf);
            maxdelta2l = (ka * maxk * tml * dt / lf);
            condition2 = (maxdelta2u <= 1 && maxdelta2l <= 1);

            return(condition1 && condition2);
        }
Exemplo n.º 6
0
 public override void updateModel(InParamsExt inParams, ViewParams viewParams, OptionParams optionParams, ViewType viewType, bool updateModelReq, bool updateOutReq)
 {
     modelThread = new Thread(new ParameterizedThreadStart(updateModelThreadFunction));
     modelThread.Start(new ModelRunParams(inParams, viewParams, optionParams, viewType, updateModelReq, updateOutReq));
 }
Exemplo n.º 7
0
 public override void updatePreview(InParamsExt inParams, ViewParams viewParams, OptionParams optionParams)
 {
     if (preview == null)
     {
         preview = new PreviewModel(this, inParams, optionParams);
     }
     preview.update(inParams, null);
     preview.updateOut(viewParams);
     preview.stats.start();
     updatePreviewObservers();
     preview.stats.storeDrawviewTime();
 }
Exemplo n.º 8
0
 public abstract void updateModel(InParamsExt inParams, ViewParams viewParams, OptionParams optionParams, ViewType viewType, bool updateModelReq, bool updateOutReq);
Exemplo n.º 9
0
 public abstract void updatePreview(InParamsExt inParams, ViewParams viewParams, OptionParams optionParams);
Exemplo n.º 10
0
 public TransModel(ProModelInterface model, InParamsExt inParams, OutParams previewParams, OptionParams optionParams)
     : base(model, inParams, previewParams, optionParams)
 {
     mincon = 0.001f;
 }
Exemplo n.º 11
0
        public ParamType validate(OptionParams optionparams)
        {
            ParamType paramType = ParamType.None;
            bool      colok, volok;
            bool      rotok, effok, kaok;
            bool      maxitok, phaseok, flowok, ptransok;
            bool      injectposok, injectvolok, injectfeedok, compsok;
            bool      intUPok, intLPok, intUPcompok, intLPcompok, intmaxitok;

            volok   = (vc > 0);
            rotok   = (mixSpeed > 0 && mixSpeed < 100000);
            colok   = (column > 0 && column < 10000);
            effok   = (efficiency >= 0 && efficiency <= 1);
            kaok    = (ka >= 0 && ka <= 1);
            maxitok = (maxIt >= 0);

            phaseok = (px > 0.01 && px < 100);
            flowok  = (((runMode == RunModeType.UpperPhase && fu > 0) || (runMode == RunModeType.LowerPhase && fl > 0) || (runMode != RunModeType.UpperPhase && runMode != RunModeType.LowerPhase)) &&
                       (fu > 0 || fl > 0) && fu >= 0 && fl >= 0 && fu < 1000 && fl < 1000);
            ptransok = true;
            if (ptransMode)
            {
                ptransok = ((ptransu > 0 || ptransl > 0) && ptransu >= 0 && ptransl >= 0 && ptransu <= 1 && ptransl <= 1);
            }

            injectposok  = (injectPos >= 0 && injectPos <= 1);
            injectvolok  = (injectVolume > 0);
            injectfeedok = (injectFeed > 0);

            if (runMode == RunModeType.Intermittent || eeMode != EEModeType.None)
            {
                compsok = true;
            }
            else
            {
                compsok = false;
                for (int compi = 0; compi < comps.Count; compi++)
                {
                    if (comps[compi].elute)
                    {
                        compsok = true;
                    }
                }
            }

            intUPok     = (intUpSwitch >= 0);
            intLPok     = (intLpSwitch >= 0);
            intUPcompok = (intUpComp >= 0 && intUpComp < comps.Count);
            intLPcompok = (intLpComp >= 0 && intLpComp < comps.Count);
            intmaxitok  = (intMaxIt >= 0);

            if (!volok)
            {
                paramType = ParamType.Column;
            }
            else if (!rotok && model == ModelType.Probabilistic)
            {
                paramType = ParamType.Advanced;
            }
            else if (!colok && (model == ModelType.CCD || model == ModelType.Transport))
            {
                paramType = ParamType.Column;
            }
            else if (!effok && (model == ModelType.CCD || model == ModelType.Probabilistic))
            {
                paramType = ParamType.Advanced;
            }
            else if (!kaok && model == ModelType.Transport)
            {
                paramType = ParamType.Advanced;
            }
            else if (!maxitok && doMaxIt)
            {
                paramType = ParamType.Flow;
            }
            else if (!phaseok)
            {
                paramType = ParamType.Column;
            }
            else if (!flowok)
            {
                paramType = ParamType.Flow;
            }
            else if (!ptransok)
            {
                paramType = ParamType.Flow;
            }
            else if (!injectposok)
            {
                paramType = ParamType.Inject;
            }
            else if (!injectvolok)
            {
                paramType = ParamType.Inject;
            }
            else if (!injectfeedok && injectMode == InjectModeType.Batch)
            {
                paramType = ParamType.Inject;
            }
            else if (!compsok)
            {
                paramType = ParamType.Components;
            }
            else if (!intUPok && intMode != IntModeType.Component)
            {
                paramType = ParamType.Flow;
            }
            else if (!intLPok && intMode != IntModeType.Component)
            {
                paramType = ParamType.Flow;
            }
            else if (!intUPcompok && intMode == IntModeType.Component)
            {
                paramType = ParamType.Flow;
            }
            else if (!intLPcompok && intMode == IntModeType.Component)
            {
                paramType = ParamType.Flow;
            }
            else if (!intmaxitok)
            {
                paramType = ParamType.Flow;
            }
            else if (!checkTransStability(optionparams) && model == ModelType.Transport && !advancedMode)
            {
                paramType = ParamType.Stability;
            }

            return(paramType);
        }
Exemplo n.º 12
0
 public PreviewModel(ProModelInterface model, InParamsExt inParams, OptionParams optionParams)
     : base(model, inParams, null, optionParams)
 {
 }
Exemplo n.º 13
0
 public OptionsWindow(OptionParams optionParams)
 {
     this.optionParams = optionParams;
     InitializeComponent();
     DataContext = optionParams;
 }