protected override void InitializeGroups() { fsParametersGroup wetMassGroup = AddGroup(fsParameterIdentifier.WetCakeMass); fsParametersGroup dryMassGroup = AddGroup(fsParameterIdentifier.DryCakeMass); fsParametersGroup cmGroup = AddGroup(fsParameterIdentifier.SolutesMassFractionInLiquid); fsParametersGroup cGroup = AddGroup(fsParameterIdentifier.SolutesConcentrationInCakeLiquid); fsParametersGroup rholGroup = AddGroup(fsParameterIdentifier.LiquidDensity); fsParametersGroup rfGroup = AddGroup(fsParameterIdentifier.CakeMoistureContentRf); var groups = new[] { wetMassGroup, dryMassGroup, cmGroup, cGroup, rholGroup, rfGroup }; var colors = new[] { Color.FromArgb(255, 255, 230), Color.FromArgb(255, 230, 255) }; for (int i = 0; i < groups.Length; ++i) { AddGroupToUI(dataGrid, groups[i], colors[i % colors.Length]); SetGroupInput(groups[i], true); } SetGroupInput(rfGroup, false); }
protected override void UpdateGroupsInputInfoFromCalculationOptions() { var calculationOption = (fsCalculationOption)CalculationOptions[typeof(fsCalculationOption)]; fsParametersGroup calculateGroup = null; switch (calculationOption) { case fsCalculationOption.CalcFiltrateDensity: calculateGroup = ParameterToGroup[fsParameterIdentifier.MotherLiquidDensity]; break; case fsCalculationOption.CalcSolidsDensity: calculateGroup = ParameterToGroup[fsParameterIdentifier.SolidsDensity]; break; case fsCalculationOption.CalcSuspensionDensity: calculateGroup = ParameterToGroup[fsParameterIdentifier.SuspensionDensity]; break; case fsCalculationOption.CalcConcentrations: calculateGroup = ParameterToGroup[fsParameterIdentifier.SuspensionSolidsMassFraction]; break; } foreach (fsParametersGroup group in ParameterToGroup.Values) { SetGroupInput(group, group != calculateGroup); } }
protected override void UpdateGroupsInputInfoFromCalculationOptions() { var calculationOption = (fsCalculationOption)CalculationOptions[typeof(fsCalculationOption)]; fsParametersGroup calculateGroup = null; switch (calculationOption) { case fsCalculationOption.CalcNc: calculateGroup = ParameterToGroup[fsParameterIdentifier.CakeCompressibility]; break; case fsCalculationOption.CalcPc0Rc0Alpha0: calculateGroup = ParameterToGroup[fsParameterIdentifier.CakePermeability0]; break; case fsCalculationOption.CalcPcRcAlpha: calculateGroup = ParameterToGroup[fsParameterIdentifier.CakePermeability]; break; case fsCalculationOption.CalcPressure: calculateGroup = ParameterToGroup[fsParameterIdentifier.PressureDifference]; break; } foreach (fsParametersGroup group in ParameterToGroup.Values) { SetGroupInput(group, group != calculateGroup); } }
protected override void InitializeGroups() { fsParametersGroup solidsGroup = AddGroup( fsParameterIdentifier.SolidsDensity); fsParametersGroup porosityGroup = AddGroup( fsParameterIdentifier.CakePorosity); fsParametersGroup pc0Rc0A0Group = AddGroup( fsParameterIdentifier.CakePermeability0, fsParameterIdentifier.CakeResistance0, fsParameterIdentifier.CakeResistanceAlpha0); fsParametersGroup ncGroup = AddGroup( fsParameterIdentifier.CakeCompressibility); fsParametersGroup pressureGroup = AddGroup( fsParameterIdentifier.PressureDifference); fsParametersGroup pcRcAGroup = AddGroup( fsParameterIdentifier.CakePermeability, fsParameterIdentifier.CakeResistance, fsParameterIdentifier.CakeResistanceAlpha); AddGroupToUI(dataGrid, solidsGroup, Color.FromArgb(230, 230, 255)); AddGroupToUI(dataGrid, porosityGroup, Color.FromArgb(255, 255, 230)); AddGroupToUI(dataGrid, pc0Rc0A0Group, Color.FromArgb(230, 230, 255)); AddGroupToUI(dataGrid, ncGroup, Color.FromArgb(255, 255, 230)); AddGroupToUI(dataGrid, pressureGroup, Color.FromArgb(230, 230, 255)); AddGroupToUI(dataGrid, pcRcAGroup, Color.FromArgb(255, 230, 230)); }
public static void ProcessCalculatorParameters( Dictionary <fsParameterIdentifier, fsSimulationModuleParameter> values, Dictionary <fsParameterIdentifier, fsParametersGroup> parameterToGroup, List <fsCalculator> calculators) { var localValues = new Dictionary <fsParameterIdentifier, fsCalculatorParameter>(); foreach (fsParameterIdentifier parameter in values.Keys) { fsParametersGroup group = parameterToGroup[parameter]; localValues[parameter] = group.GetIsInputFlag() && parameter == group.Representator ? new fsCalculatorParameter(parameter, true, values[parameter].Value) : new fsCalculatorParameter(parameter); } foreach (fsCalculator calc in calculators) { calc.ReadDataFromStorage(localValues); calc.Calculate(); calc.CopyValuesToStorage(localValues); } foreach (fsParameterIdentifier parameter in values.Keys) { values[parameter].Value = localValues[parameter].Value; } }
protected override void InitializeGroups() { fsParametersGroup wetMassGroup = AddGroup(fsParameterIdentifier.SuspensionMass); fsParametersGroup dryMassGroup = AddGroup(fsParameterIdentifier.DryCakeMass); fsParametersGroup cfmGroup = AddGroup(fsParameterIdentifier.SolutesMassFractionInMotherLiquid); fsParametersGroup cfGroup = AddGroup(fsParameterIdentifier.SolutesConcentrationInMotherLiquid); fsParametersGroup rhofGroup = AddGroup(fsParameterIdentifier.MotherLiquidDensity); fsParametersGroup cmGroup = AddGroup(fsParameterIdentifier.SuspensionSolidsMassFraction); var groups = new[] { wetMassGroup, dryMassGroup, cfmGroup, cfGroup, rhofGroup, cmGroup }; var colors = new[] { Color.FromArgb(255, 255, 230), Color.FromArgb(255, 230, 255) }; for (int i = 0; i < groups.Length; ++i) { AddGroupToUI(dataGrid, groups[i], colors[i % colors.Length]); SetGroupInput(groups[i], true); } SetGroupInput(cmGroup, false); }
protected override void InitializeGroups() { fsParametersGroup filtrateGroup = AddGroup( fsParameterIdentifier.MotherLiquidDensity); fsParametersGroup densitiesGroup = AddGroup( fsParameterIdentifier.SolidsDensity, fsParameterIdentifier.SuspensionDensity); fsParametersGroup concentrationGroup = AddGroup( fsParameterIdentifier.SuspensionSolidsMassFraction, fsParameterIdentifier.SuspensionSolidsVolumeFraction, fsParameterIdentifier.SuspensionSolidsConcentration); fsParametersGroup epsKappaGroup = AddGroup( fsParameterIdentifier.CakePorosity, fsParameterIdentifier.Kappa); fsParametersGroup machineDiameterGroup = AddGroup( fsParameterIdentifier.MachineDiameter); m_areaBGroup = AddGroup( fsParameterIdentifier.MachineWidth, fsParameterIdentifier.WidthOverDiameterRatio, fsParameterIdentifier.FilterArea); fsParametersGroup diameterFilterElementGroup = AddGroup( fsParameterIdentifier.FilterElementDiameter); fsParametersGroup cakeHeightGroup = AddGroup( fsParameterIdentifier.CakeHeight); fsParametersGroup massVolumeGroup = AddGroup( fsParameterIdentifier.SuspensionVolume, fsParameterIdentifier.SuspensionMass); var groups = new[] { filtrateGroup, densitiesGroup, concentrationGroup, epsKappaGroup, machineDiameterGroup, m_areaBGroup, diameterFilterElementGroup, cakeHeightGroup, massVolumeGroup }; var colors = new[] { Color.FromArgb(255, 255, 230), Color.FromArgb(255, 230, 255) }; for (int i = 0; i < groups.Length; ++i) { AddGroupToUI(dataGrid, groups[i], colors[i % colors.Length]); } SetRowColor(dataGrid, ParameterToCell[fsParameterIdentifier.FilterArea].RowIndex, Color.FromArgb(255, 230, 230)); SetRowColor(dataGrid, ParameterToCell[fsParameterIdentifier.MachineWidth].RowIndex, Color.FromArgb(255, 230, 230)); SetRowColor(dataGrid, ParameterToCell[fsParameterIdentifier.WidthOverDiameterRatio].RowIndex, Color.FromArgb(255, 230, 230)); }
public fsParametersGroup(fsParametersGroup other) { Parameters = new List <fsParameterIdentifier>(other.Parameters); Representator = other.Representator; IsInput = other.IsInput; IsOnlyCalculated = other.IsOnlyCalculated; Kind = other.Kind; }
protected void UpdateInputInGroup(fsParameterIdentifier parameter) { fsParametersGroup g = ParameterToGroup[parameter]; g.Representator = parameter; foreach (fsParameterIdentifier p in g.Parameters) { ParameterToCell[p].Style.ForeColor = p == parameter ? Color.Blue : Color.Black; } }
public fsParametersGroup AddGroup(bool isOnlyCalculated, params fsParameterIdentifier[] parameters) { var group = new fsParametersGroup(isOnlyCalculated); foreach (fsParameterIdentifier parameter in parameters) { group.Parameters.Add(parameter); ParameterToGroup[parameter] = group; } group.Representator = group.Parameters[0]; Groups.Add(group); return(group); }
protected void SetGroupInput(fsParametersGroup group, bool value) { if (!group.GetIsOnlyCalculatedFlag()) { group.SetIsInputFlag(value); } bool isReadOnly = !group.GetIsInputFlag(); foreach (fsParameterIdentifier parameter in group.Parameters) { ParameterToCell[parameter].ReadOnly = isReadOnly; } }
protected override void InitializeGroups() { fsParametersGroup machineDiameterGroup = AddGroup(fsParameterIdentifier.MachineDiameter); fsParametersGroup areaBGroup = AddGroup(fsParameterIdentifier.MachineWidth, fsParameterIdentifier.WidthOverDiameterRatio, fsParameterIdentifier.FilterArea); fsParametersGroup filterElementDiameterGroup = AddGroup(fsParameterIdentifier.FilterElementDiameter); fsParametersGroup cakeHeightGroup = AddGroup(fsParameterIdentifier.CakeHeight); fsParametersGroup wetGroup = AddGroup(fsParameterIdentifier.WetCakeMass); fsParametersGroup dryGroup = AddGroup(fsParameterIdentifier.DryCakeMass); fsParametersGroup concentrationGroup = AddGroup(fsParameterIdentifier.SolutesConcentrationInCakeLiquid); fsParametersGroup liquidGroup = AddGroup(fsParameterIdentifier.LiquidDensity); fsParametersGroup solidsGroup = AddGroup(fsParameterIdentifier.SolidsDensity); fsParametersGroup porosityGroup = AddGroup(fsParameterIdentifier.CakePorosity); var groups = new[] { machineDiameterGroup, areaBGroup, filterElementDiameterGroup, cakeHeightGroup, wetGroup, dryGroup, concentrationGroup, liquidGroup, solidsGroup, porosityGroup }; var colors = new[] { Color.FromArgb(255, 255, 230), Color.FromArgb(255, 230, 255) }; for (int i = 0; i < groups.Length; ++i) { groups[i].SetIsInputFlag(true); AddGroupToUI(dataGrid, groups[i], colors[i % colors.Length]); } porosityGroup.SetIsInputFlag(false); ParameterToCell[fsParameterIdentifier.CakePorosity].ReadOnly = true; SetRowColor(dataGrid, ParameterToCell[fsParameterIdentifier.FilterArea].RowIndex, Color.FromArgb(255, 230, 230)); SetRowColor(dataGrid, ParameterToCell[fsParameterIdentifier.MachineWidth].RowIndex, Color.FromArgb(255, 230, 230)); SetRowColor(dataGrid, ParameterToCell[fsParameterIdentifier.WidthOverDiameterRatio].RowIndex, Color.FromArgb(255, 230, 230)); }
protected void UpdateCellForeColors() { foreach (var pair in ParameterToCell) { fsParametersGroup group = ParameterToGroup[pair.Key]; if (group.GetIsInputFlag()) { pair.Value.Style.ForeColor = group.Representator == pair.Key ? Color.Blue : Color.Black; } else { pair.Value.Style.ForeColor = Color.Black; } } }
protected override void InitializeGroups() { fsParametersGroup filtrateGroup = AddGroup( fsParameterIdentifier.MotherLiquidDensity); fsParametersGroup solidsGroup = AddGroup( fsParameterIdentifier.SolidsDensity); fsParametersGroup suspensionGroup = AddGroup( fsParameterIdentifier.SuspensionDensity); fsParametersGroup concentrationGroup = AddGroup( fsParameterIdentifier.SuspensionSolidsMassFraction, fsParameterIdentifier.SuspensionSolidsVolumeFraction, fsParameterIdentifier.SuspensionSolidsConcentration); AddGroupToUI(dataGrid, filtrateGroup, Color.FromArgb(230, 255, 255)); AddGroupToUI(dataGrid, solidsGroup, Color.FromArgb(255, 230, 255)); AddGroupToUI(dataGrid, suspensionGroup, Color.FromArgb(255, 255, 230)); AddGroupToUI(dataGrid, concentrationGroup, Color.FromArgb(230, 230, 230)); }
protected override void UpdateGroupsInputInfoFromCalculationOptions() { var calculationOption = (fsCalculationOption)CalculationOptions[typeof(fsCalculationOption)]; fsParametersGroup calculateGroup = null; switch (calculationOption) { case fsCalculationOption.DensitiesCalculated: calculateGroup = ParameterToGroup[fsParameterIdentifier.SolidsDensity]; break; case fsCalculationOption.ConcentreationsCalculated: calculateGroup = ParameterToGroup[fsParameterIdentifier.SuspensionSolidsMassFraction]; break; case fsCalculationOption.PorosityKappaCalculated: calculateGroup = ParameterToGroup[fsParameterIdentifier.CakePorosity]; break; case fsCalculationOption.MachineDiameterCalculated: calculateGroup = ParameterToGroup[fsParameterIdentifier.MachineDiameter]; break; case fsCalculationOption.FilterElementDiameterCalculated: calculateGroup = ParameterToGroup[fsParameterIdentifier.FilterElementDiameter]; break; case fsCalculationOption.MachineAreaBCalculated: calculateGroup = ParameterToGroup[fsParameterIdentifier.FilterArea]; break; case fsCalculationOption.CakeHeightCalculated: calculateGroup = ParameterToGroup[fsParameterIdentifier.CakeHeight]; break; case fsCalculationOption.MassVolumeCalculated: calculateGroup = ParameterToGroup[fsParameterIdentifier.SuspensionMass]; break; } foreach (fsParametersGroup group in ParameterToGroup.Values) { SetGroupInput(group, group != calculateGroup); } }
protected void AddGroupToUI(fsParametersWithValuesTable dataGrid, fsParametersGroup group, Color color) { foreach (fsParameterIdentifier identifier in group.Parameters) { if (!Values.ContainsKey(identifier)) { var parameter = new fsSimulationModuleParameter(identifier); var defaultRanges = fsMachineRanges.DefaultMachineRanges.Ranges; if (defaultRanges.ContainsKey(identifier)) { parameter.Range = fsMachineRanges.DefaultMachineRanges.Ranges[identifier].Range; } Values.Add(identifier, parameter); AddRow(dataGrid, parameter, color); } else { AddRow(dataGrid, Values[identifier], color); } } }
protected override void InitializeGroups() { fsParametersGroup wetMassGroup = AddGroup(fsParameterIdentifier.WetCakeMass); fsParametersGroup liquidGroup = AddGroup(fsParameterIdentifier.LiquidMassForResuspension); fsParametersGroup cwmGroup = AddGroup(fsParameterIdentifier.LiquidWashOutMassFraction); fsParametersGroup rholGroup = AddGroup(fsParameterIdentifier.LiquidDensity); fsParametersGroup cwGroup = AddGroup(fsParameterIdentifier.LiquidWashOutConcentration); fsParametersGroup phGroup = AddGroup(fsParameterIdentifier.Ph); fsParametersGroup dryMassGroup = AddGroup(fsParameterIdentifier.DryCakeMass); fsParametersGroup outGroup = AddGroup( fsParameterIdentifier.PHcake, fsParameterIdentifier.CakeMoistureContentRf, fsParameterIdentifier.CakeWashOutContent); var groups = new[] { wetMassGroup, liquidGroup, rholGroup, cwGroup, cwmGroup, dryMassGroup, phGroup, outGroup }; var colors = new[] { Color.FromArgb(255, 255, 230), Color.FromArgb(255, 230, 255) }; for (int i = 0; i < groups.Length; ++i) { AddGroupToUI(dataGrid, groups[i], colors[i % colors.Length]); SetGroupInput(groups[i], true); } SetGroupInput(outGroup, false); }
protected override void InitializeGroups() { fsParametersGroup permeabilityGroup = AddGroup(fsParameterIdentifier.CakePermeability); fsParametersGroup resistanceGroup = AddGroup(fsParameterIdentifier.CakeResistance); fsParametersGroup alphaGroup = AddGroup(fsParameterIdentifier.CakeResistanceAlpha); fsParametersGroup rhosGroup = AddGroup(fsParameterIdentifier.SolidsDensity); fsParametersGroup epsGroup = AddGroup(fsParameterIdentifier.CakePorosity); fsParametersGroup rhosBulkGroup = AddGroup(fsParameterIdentifier.DryCakeDensity); fsParametersGroup sigmaGroup = AddGroup(fsParameterIdentifier.SurfaceTensionLiquidInCake); fsParametersGroup pkestGroup = AddGroup(fsParameterIdentifier.StandardCapillaryPressure); fsParametersGroup pkeGroup = AddGroup(fsParameterIdentifier.CapillaryPressure); var groups = new[] { permeabilityGroup, resistanceGroup, alphaGroup, rhosGroup, epsGroup, rhosBulkGroup, sigmaGroup, pkestGroup, pkeGroup }; var colors = new[] { Color.FromArgb(255, 255, 230), Color.FromArgb(255, 230, 255) }; for (int i = 0; i < groups.Length; ++i) { AddGroupToUI(dataGrid, groups[i], colors[i % colors.Length]); SetGroupInput(groups[i], true); } SetGroupInput(pkeGroup, false); }
protected override void InitializeGroups() { fsParametersGroup liquidGroup = AddGroup( fsParameterIdentifier.LiquidDensity); fsParametersGroup solidsGroup = AddGroup( fsParameterIdentifier.SolidsDensity); fsParametersGroup porosityGroup = AddGroup( fsParameterIdentifier.CakePorosity); fsParametersGroup saturationGroup = AddGroup( fsParameterIdentifier.CakeSaturation); fsParametersGroup rfGroup = AddGroup( fsParameterIdentifier.CakeMoistureContentRf); var groups = new[] { liquidGroup, solidsGroup, porosityGroup, saturationGroup, rfGroup }; var colors = new[] { Color.FromArgb(255, 255, 230), Color.FromArgb(255, 230, 255) }; for (int i = 0; i < groups.Length; ++i) { groups[i].SetIsInputFlag(true); AddGroupToUI(dataGrid, groups[i], colors[i % colors.Length]); } rfGroup.SetIsInputFlag(false); ParameterToCell[fsParameterIdentifier.CakeMoistureContentRf].ReadOnly = true; }
protected override void UpdateGroupsInputInfoFromCalculationOptions() { var calculationOption = (fsCalculationOption)CalculationOptions[typeof(fsCalculationOption)]; fsParametersGroup calculateGroup = null; switch (calculationOption) { case fsCalculationOption.CakeMoistureContent: calculateGroup = ParameterToGroup[fsParameterIdentifier.CakeMoistureContentRf]; break; case fsCalculationOption.CakePorosity: calculateGroup = ParameterToGroup[fsParameterIdentifier.CakePorosity]; break; case fsCalculationOption.CakeSaturation: calculateGroup = ParameterToGroup[fsParameterIdentifier.CakeSaturation]; break; } foreach (fsParametersGroup group in ParameterToGroup.Values) { SetGroupInput(group, group != calculateGroup); } }
public fsParametersGroup AddOnlyCalculatedGroup(params fsParameterIdentifier[] parameters) { fsParametersGroup group = AddGroup(true, parameters); return(group); }
protected override void InitializeGroups() { fsParametersGroup filtrateGroup = AddGroup( fsParameterIdentifier.MotherLiquidDensity); fsParametersGroup solidsGroup = AddGroup( fsParameterIdentifier.SolidsDensity, fsParameterIdentifier.SuspensionDensity); fsParametersGroup concentrationGroup = AddGroup( fsParameterIdentifier.SuspensionSolidsMassFraction, fsParameterIdentifier.SuspensionSolidsVolumeFraction, fsParameterIdentifier.SuspensionSolidsConcentration); fsParametersGroup neGroup = AddGroup( fsParameterIdentifier.Ne); fsParametersGroup ncGroup = AddGroup( fsParameterIdentifier.CakeCompressibility); fsParametersGroup epsKappaGroup = AddGroup( fsParameterIdentifier.CakePorosity0, fsParameterIdentifier.DryCakeDensity0, fsParameterIdentifier.Kappa0, fsParameterIdentifier.CakeMoistureContentRf0, fsParameterIdentifier.CakePorosity, fsParameterIdentifier.DryCakeDensity, fsParameterIdentifier.Kappa, fsParameterIdentifier.CakeMoistureContentRf); fsParametersGroup viscosityGroup = AddGroup( fsParameterIdentifier.MotherLiquidViscosity); fsParametersGroup pc0Rc0Alpha0Group = AddGroup( fsParameterIdentifier.CakePermeability0, fsParameterIdentifier.CakeResistance0, fsParameterIdentifier.CakeResistanceAlpha0, fsParameterIdentifier.CakePermeability, fsParameterIdentifier.CakeResistance, fsParameterIdentifier.CakeResistanceAlpha, fsParameterIdentifier.PracticalCakePermeability); fsParametersGroup hceGroup = AddGroup( fsParameterIdentifier.FilterMediumResistanceHce, fsParameterIdentifier.FilterMediumResistanceRm); fsParametersGroup areaGroup = AddGroup( fsParameterIdentifier.FilterArea); fsParametersGroup pressureGroup = AddGroup( fsParameterIdentifier.PressureDifference); fsParametersGroup cakeFormationGroup = AddGroup( fsParameterIdentifier.FiltrationTime, fsParameterIdentifier.CakeHeight, fsParameterIdentifier.SuspensionMass, fsParameterIdentifier.FiltrateMass, fsParameterIdentifier.CakeMass, fsParameterIdentifier.SolidsMass, fsParameterIdentifier.qmf, fsParameterIdentifier.SuspensionVolume, fsParameterIdentifier.FiltrateVolume, fsParameterIdentifier.CakeVolume, fsParameterIdentifier.SolidsVolume, fsParameterIdentifier.qf); var groups = new[] { viscosityGroup, filtrateGroup, solidsGroup, concentrationGroup, epsKappaGroup, neGroup, ncGroup, pc0Rc0Alpha0Group, hceGroup, areaGroup, pressureGroup, cakeFormationGroup, }; var colors = new[] { Color.FromArgb(255, 255, 230), Color.FromArgb(255, 230, 255), Color.FromArgb(230, 255, 255) }; for (int i = 0; i < groups.Length; ++i) { groups[i].SetIsInputFlag(true); AddGroupToUI(dataGrid, groups[i], colors[i % colors.Length]); } ParameterToCell[fsParameterIdentifier.Ne].OwningRow.Visible = false; ParameterToCell[fsParameterIdentifier.CakePorosity0].OwningRow.Visible = false; ParameterToCell[fsParameterIdentifier.DryCakeDensity0].OwningRow.Visible = false; ParameterToCell[fsParameterIdentifier.Kappa0].OwningRow.Visible = false; ParameterToCell[fsParameterIdentifier.CakeMoistureContentRf0].OwningRow.Visible = false; }