public OptionParams(OptionParams optionparams) { timeStores = optionparams.timeStores; exportDpi = optionparams.exportDpi; cflConstant = optionparams.cflConstant; setPath(); }
public Model(ProModelInterface model, InParamsExt inParams, OutParams previewParams, OptionParams optionParams) { this.model = model; this.inParams = inParams; this.previewParams = previewParams; this.optionParams = optionParams; }
void loadOptionParams() { XmlSerializer serializer = new XmlSerializer(typeof(OptionParams)); try { optionParams = (OptionParams)serializer.Deserialize(new StreamReader(optionParams.filePath)); } catch (Exception) { } }
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); }
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); }
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)); }
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(); }
public abstract void updateModel(InParamsExt inParams, ViewParams viewParams, OptionParams optionParams, ViewType viewType, bool updateModelReq, bool updateOutReq);
public abstract void updatePreview(InParamsExt inParams, ViewParams viewParams, OptionParams optionParams);
public TransModel(ProModelInterface model, InParamsExt inParams, OutParams previewParams, OptionParams optionParams) : base(model, inParams, previewParams, optionParams) { mincon = 0.001f; }
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); }
public PreviewModel(ProModelInterface model, InParamsExt inParams, OptionParams optionParams) : base(model, inParams, null, optionParams) { }
public OptionsWindow(OptionParams optionParams) { this.optionParams = optionParams; InitializeComponent(); DataContext = optionParams; }