private IEnumerable <fsYAxisParameter> GetSelectionParameters(IEnumerable <fsParameterIdentifier> parameters) { var selectionParameters = new List <fsYAxisParameter>(); foreach (fsParameterIdentifier parameter in parameters) { // if group isn't assigned to current parameter then do nothing here if (!m_parameterToGroup.ContainsKey(parameter)) { continue; } fsParametersGroup group = m_parameterToGroup[parameter]; fsYAxisParameter.fsYParameterKind kind; fsParametersGroup iterationParameterGroup = m_iterationParameter == null ? null : m_parameterToGroup[m_iterationParameter]; if (group == iterationParameterGroup) { kind = fsYAxisParameter.fsYParameterKind.CalculatedVariableParameter; } else if (group.GetIsInputFlag() && parameter == group.Representator) { kind = fsYAxisParameter.fsYParameterKind.InputParameter; } else { kind = IsConstantList(m_data[parameter]) ? fsYAxisParameter.fsYParameterKind.CalculatedConstantParameter : fsYAxisParameter.fsYParameterKind.CalculatedVariableParameter; } selectionParameters.Add(new fsYAxisParameter(parameter, kind)); } return(selectionParameters); }
protected override void UpdateGroupsInputInfoFromCalculationOptions() { var calculationOption = (fsCalculationOption)CalculationOptions[typeof(fsCalculationOption)]; fsParametersGroup calculateGroup = null; switch (calculationOption) { case fsCalculationOption.Dp: calculateGroup = ParameterToGroup[fsParameterIdentifier.PressureDifference]; break; case fsCalculationOption.n: calculateGroup = ParameterToGroup[fsParameterIdentifier.NumberOfCyclones]; break; case fsCalculationOption.Q: calculateGroup = ParameterToGroup[fsParameterIdentifier.FeedVolumeFlowRate]; break; } var groups = new[] { ParameterToGroup[fsParameterIdentifier.PressureDifference], ParameterToGroup[fsParameterIdentifier.NumberOfCyclones], ParameterToGroup[fsParameterIdentifier.FeedVolumeFlowRate] }; foreach (fsParametersGroup group in groups) { SetGroupInput(group, group != calculateGroup); } }
override protected fsParametersGroup[] MakeMachiningStandardGroups() { fsParametersGroup abGroup = AddGroup( fsParameterIdentifier.FilterArea, fsParameterIdentifier.MachineWidth); fsParametersGroup geometryGroup = AddGroup( fsParameterIdentifier.FilterLength, fsParameterIdentifier.l_over_b); fsParametersGroup dpGroup = AddGroup( fsParameterIdentifier.PressureDifference); fsParametersGroup specificTimeGroup = AddGroup( fsParameterIdentifier.SpecificFiltrationTime, fsParameterIdentifier.SpecificResidualTime, fsParameterIdentifier.ResidualTime); fsParametersGroup timeQGroup = AddGroup( fsParameterIdentifier.u, fsParameterIdentifier.RotationalSpeed, fsParameterIdentifier.CycleTime, fsParameterIdentifier.CakeHeight, fsParameterIdentifier.FiltrationTime, fsParameterIdentifier.qft, fsParameterIdentifier.qmft, fsParameterIdentifier.Qms, fsParameterIdentifier.Qsus, fsParameterIdentifier.SuspensionMassFlowrate); fsParametersGroup resultsGroup = AddOnlyCalculatedGroup( fsParameterIdentifier.MeanHeightRate, fsParameterIdentifier.HcOverTc, fsParameterIdentifier.DiffHeightRate, fsParameterIdentifier.SolidsMass, fsParameterIdentifier.SuspensionMass, fsParameterIdentifier.SolidsVolume, fsParameterIdentifier.SuspensionVolume, fsParameterIdentifier.SpecificSuspensionMass, fsParameterIdentifier.SpecificSuspensionVolume, fsParameterIdentifier.Qmsust, fsParameterIdentifier.Qmsusd, fsParameterIdentifier.Qsust, fsParameterIdentifier.Qsusd, fsParameterIdentifier.qmsust, fsParameterIdentifier.qmsusd, fsParameterIdentifier.qsust, fsParameterIdentifier.qsusd); return(new[] { abGroup, geometryGroup, dpGroup, specificTimeGroup, timeQGroup, resultsGroup }); }
private static void SubstituteGroup(Dictionary <fsParameterIdentifier, fsParametersGroup> parameterToGroup, fsParametersGroup initialGroup, fsParametersGroup newGroup) { foreach (fsParameterIdentifier parameter in initialGroup.Parameters) { parameterToGroup[parameter] = newGroup; } }
override protected fsParametersGroup[] MakeMachiningDesignGroups() { fsParametersGroup qsusGroup = AddGroup( fsParameterIdentifier.Qms, fsParameterIdentifier.Qsus, fsParameterIdentifier.SuspensionMassFlowrate); fsParametersGroup dpGroup = AddGroup( fsParameterIdentifier.PressureDifference); fsParametersGroup cycleGroup = AddGroup( fsParameterIdentifier.RotationalSpeed, fsParameterIdentifier.CycleTime, fsParameterIdentifier.SpecificFiltrationTime, fsParameterIdentifier.SpecificResidualTime, fsParameterIdentifier.ResidualTime); fsParametersGroup filtrationGroup = AddGroup( fsParameterIdentifier.CakeHeight, fsParameterIdentifier.FiltrationTime, fsParameterIdentifier.qft, fsParameterIdentifier.qmft); fsParametersGroup resultsGroup = AddOnlyCalculatedGroup( fsParameterIdentifier.FilterArea, fsParameterIdentifier.MeanHeightRate, fsParameterIdentifier.HcOverTc, fsParameterIdentifier.DiffHeightRate, fsParameterIdentifier.SolidsMass, fsParameterIdentifier.SuspensionMass, fsParameterIdentifier.SolidsVolume, fsParameterIdentifier.SuspensionVolume, fsParameterIdentifier.SpecificSuspensionMass, fsParameterIdentifier.SpecificSuspensionVolume, fsParameterIdentifier.Qmsust, fsParameterIdentifier.Qmsusd, fsParameterIdentifier.Qsust, fsParameterIdentifier.Qsusd, fsParameterIdentifier.qmsust, fsParameterIdentifier.qmsusd, fsParameterIdentifier.qsust, fsParameterIdentifier.qsusd); return(new[] { qsusGroup, dpGroup, cycleGroup, filtrationGroup, resultsGroup }); }
private void CalculateData() { if (m_inputRefreshing || m_iterationParameter == null) { return; } var detalization = (int)fsValue.StringToValue(detalizationBox.Text).Value; if (detalization < 2) { detalization = 2; } double factor = m_values[m_iterationParameter].Unit.Coefficient; fsValue from = fsValue.StringToValue(rangeFrom.Text) * factor; fsValue to = fsValue.StringToValue(rangeTo.Text) * factor; m_data = new Dictionary <fsParameterIdentifier, List <fsSimulationModuleParameter> >(); for (int i = 0; i <= detalization; ++i) { Dictionary <fsParameterIdentifier, fsSimulationModuleParameter> currentValues = m_values.ToDictionary(pair => pair.Key, pair => new fsSimulationModuleParameter(pair.Value)); fsParametersGroup xInitialgroup = m_parameterToGroup[m_iterationParameter]; var xNewGroup = new fsParametersGroup(xInitialgroup) { Representator = m_iterationParameter }; SubstituteGroup(m_parameterToGroup, xInitialgroup, xNewGroup); currentValues[m_iterationParameter].Value = from + (to - from) * i / detalization; fsCalculationProcessor.ProcessCalculatorParameters(currentValues, m_parameterToGroup, m_calculators); SubstituteGroup(m_parameterToGroup, xNewGroup, xInitialgroup); foreach (var pair in currentValues) { if (m_data.ContainsKey(pair.Key) == false) { m_data.Add(pair.Key, new List <fsSimulationModuleParameter>()); } m_data[pair.Key].Add(pair.Value); } } }
override protected fsParametersGroup[] MakeMachiningDesignGroups() { fsParametersGroup qsusGroup = AddGroup( fsParameterIdentifier.Qms, fsParameterIdentifier.Qsus, fsParameterIdentifier.SuspensionMassFlowrate); fsParametersGroup nsGroup = AddGroup( fsParameterIdentifier.ns); fsParametersGroup geometryGroup = AddGroup( fsParameterIdentifier.ls_over_b, fsParameterIdentifier.l_over_b, fsParameterIdentifier.ls); fsParametersGroup timeGroup = AddGroup( fsParameterIdentifier.StandardTechnicalTime, fsParameterIdentifier.TechnicalTime); fsParametersGroup lambdaGroup = AddGroup( fsParameterIdentifier.lambda); fsParametersGroup dpGroup = AddGroup( fsParameterIdentifier.PressureDifference); fsParametersGroup cycleGroup = AddGroup( fsParameterIdentifier.u, fsParameterIdentifier.RotationalSpeed, fsParameterIdentifier.CycleTime, fsParameterIdentifier.nsf, fsParameterIdentifier.nsr, fsParameterIdentifier.SpecificFiltrationTime, fsParameterIdentifier.SpecificResidualTime, fsParameterIdentifier.ResidualTime); fsParametersGroup filtrationGroup = AddGroup( fsParameterIdentifier.CakeHeight, fsParameterIdentifier.FiltrationTime, fsParameterIdentifier.qft, fsParameterIdentifier.qmft); fsParametersGroup resultsGroup = AddOnlyCalculatedGroup( fsParameterIdentifier.FilterArea, fsParameterIdentifier.As, fsParameterIdentifier.MachineWidth, fsParameterIdentifier.FilterLength, fsParameterIdentifier.MeanHeightRate, fsParameterIdentifier.HcOverTc, fsParameterIdentifier.DiffHeightRate, fsParameterIdentifier.SolidsMass, fsParameterIdentifier.SuspensionMass, fsParameterIdentifier.SolidsVolume, fsParameterIdentifier.SuspensionVolume, fsParameterIdentifier.SpecificSuspensionMass, fsParameterIdentifier.SpecificSuspensionVolume, fsParameterIdentifier.Qmsust, fsParameterIdentifier.Qmsusd, fsParameterIdentifier.Qsust, fsParameterIdentifier.Qsusd, fsParameterIdentifier.qmsust, fsParameterIdentifier.qmsusd, fsParameterIdentifier.qsust, fsParameterIdentifier.qsusd); return(new[] { qsusGroup, nsGroup, geometryGroup, timeGroup, lambdaGroup, dpGroup, cycleGroup, filtrationGroup, resultsGroup }); }
private fsParametersGroup[] MakeMaterialGroups() { fsParametersGroup etafGroup = AddGroup( fsParameterIdentifier.MotherLiquidViscosity); fsParametersGroup rhofGroup = AddGroup( fsParameterIdentifier.MotherLiquidDensity); fsParametersGroup densitiesGroup = AddGroup( fsParameterIdentifier.SolidsDensity, fsParameterIdentifier.SuspensionDensity); fsParametersGroup cGroup = AddGroup( fsParameterIdentifier.SuspensionSolidsMassFraction, fsParameterIdentifier.SuspensionSolidsVolumeFraction, fsParameterIdentifier.SuspensionSolidsConcentration); fsParametersGroup neGroup = AddGroup( fsParameterIdentifier.Ne); fsParametersGroup epsGroup = AddGroup( fsParameterIdentifier.CakePorosity0, fsParameterIdentifier.Kappa0, fsParameterIdentifier.DryCakeDensity0, fsParameterIdentifier.CakeWetDensity0, fsParameterIdentifier.CakeWetMassSolidsFractionRs0, fsParameterIdentifier.CakeMoistureContentRf0, fsParameterIdentifier.CakePorosity, fsParameterIdentifier.Kappa, fsParameterIdentifier.DryCakeDensity, fsParameterIdentifier.CakeWetDensity, fsParameterIdentifier.CakeWetMassSolidsFractionRs, fsParameterIdentifier.CakeMoistureContentRf); fsParametersGroup pcrcGroup = AddGroup( fsParameterIdentifier.CakePermeability0, fsParameterIdentifier.CakeResistance0, fsParameterIdentifier.CakeResistanceAlpha0, fsParameterIdentifier.CakePermeability, fsParameterIdentifier.CakeResistance, fsParameterIdentifier.CakeResistanceAlpha); fsParametersGroup ncGroup = AddGroup( fsParameterIdentifier.CakeCompressibility); fsParametersGroup hce0Group = AddGroup( fsParameterIdentifier.FilterMediumResistanceHce0, fsParameterIdentifier.FilterMediumResistanceRm0); var materialGroups = new fsParametersGroup[] { etafGroup, rhofGroup, densitiesGroup, cGroup, neGroup, epsGroup, pcrcGroup, ncGroup, hce0Group, }; foreach (fsParametersGroup group in materialGroups) { group.Kind = fsParametersGroup.fsParametersGroupKind.MaterialParameters; } return(materialGroups); }
protected override void InitializeGroups() { var colors = new[] { Color.FromArgb(255, 255, 230), Color.FromArgb(255, 230, 255) }; fsParametersGroup etafGroup = AddGroup( fsParameterIdentifier.MotherLiquidViscosity); fsParametersGroup rhofGroup = AddGroup( fsParameterIdentifier.MotherLiquidDensity); fsParametersGroup densitiesGroup = AddGroup( fsParameterIdentifier.SolidsDensity); fsParametersGroup epsGroup = AddGroup( fsParameterIdentifier.CakePorosity0, fsParameterIdentifier.DryCakeDensity0, fsParameterIdentifier.CakeMoistureContentRf0, fsParameterIdentifier.CakePorosity, fsParameterIdentifier.DryCakeDensity, fsParameterIdentifier.CakeMoistureContentRf); fsParametersGroup neGroup = AddGroup( fsParameterIdentifier.Ne); fsParametersGroup pcrcGroup = AddGroup( fsParameterIdentifier.CakePermeability0, fsParameterIdentifier.CakeResistance0, fsParameterIdentifier.CakeResistanceAlpha0, fsParameterIdentifier.CakePermeability, fsParameterIdentifier.CakeResistance, fsParameterIdentifier.CakeResistanceAlpha, fsParameterIdentifier.PracticalCakePermeability); fsParametersGroup ncGroup = AddGroup( fsParameterIdentifier.CakeCompressibility); fsParametersGroup hceGroup = AddGroup( fsParameterIdentifier.FilterMediumResistanceHce, fsParameterIdentifier.FilterMediumResistanceRm); fsParametersGroup cstartGroup = AddGroup( fsParameterIdentifier.CakeSaturationSw0, fsParameterIdentifier.CakeMoistureContentRfw0); fsParametersGroup fqGroup = AddGroup( fsParameterIdentifier.PredeliquorFlowRate); fsParametersGroup washoutGroup = AddGroup( fsParameterIdentifier.CakeWashOutConcentration, fsParameterIdentifier.CakeWashOutContentX0p); fsParametersGroup xrGroup = AddGroup( fsParameterIdentifier.RemanentWashOutContent); fsParametersGroup rhowGroup = AddGroup( fsParameterIdentifier.WashLiquidDensity); fsParametersGroup etawGroup = AddGroup( fsParameterIdentifier.WashLiquidViscosity); fsParametersGroup cwGroup = AddGroup( fsParameterIdentifier.LiquidWashOutConcentration); fsParametersGroup dnGroup = AddGroup( fsParameterIdentifier.WashIndexFor0, fsParameterIdentifier.WashIndexFor); fsParametersGroup aw1Group = AddGroup( fsParameterIdentifier.AdaptationPar1); fsParametersGroup aw2Group = AddGroup( fsParameterIdentifier.AdaptationPar2); var materialGroups = new[] { etafGroup, rhofGroup, densitiesGroup, epsGroup, neGroup, pcrcGroup, ncGroup, hceGroup, cstartGroup, fqGroup, washoutGroup, xrGroup, rhowGroup, etawGroup, cwGroup, dnGroup, aw1Group, aw2Group }; for (int i = 0; i < materialGroups.Length; ++i) { materialGroups[i].Kind = fsParametersGroup.fsParametersGroupKind.MaterialParameters; AddGroupToUI(materialParametersDataGrid, materialGroups[i], colors[i % colors.Length]); SetGroupInput(materialGroups[i], true); } #region Machine groups fsParametersGroup abGroup = AddGroup( fsParameterIdentifier.FilterArea, fsParameterIdentifier.MachineWidth); fsParametersGroup nsGroup = AddGroup( fsParameterIdentifier.ns); fsParametersGroup geometryGroup = AddGroup( fsParameterIdentifier.ls, fsParameterIdentifier.ls_over_b, fsParameterIdentifier.FilterLength, fsParameterIdentifier.l_over_b, fsParameterIdentifier.As); fsParametersGroup timeGroup = AddGroup( fsParameterIdentifier.StandardTechnicalTime, fsParameterIdentifier.TechnicalTime); fsParametersGroup lambdaGroup = AddGroup( fsParameterIdentifier.lambda); fsParametersGroup uGroup = AddGroup( fsParameterIdentifier.u, fsParameterIdentifier.RotationalSpeed, fsParameterIdentifier.CycleTime); fsParametersGroup hcGroup = AddGroup( fsParameterIdentifier.CakeHeight, fsParameterIdentifier.SolidsMass, fsParameterIdentifier.Qms); fsParametersGroup dpGroup = AddGroup( fsParameterIdentifier.PressureDifference); fsParametersGroup washGroup = AddGroup( fsParameterIdentifier.WashingRatioW, fsParameterIdentifier.WashingRatioWv, fsParameterIdentifier.WashingRatioWm, fsParameterIdentifier.WashLiquidVolume, fsParameterIdentifier.WashLiquidMass, fsParameterIdentifier.NumberOfWashingSegments, fsParameterIdentifier.SpecificWashArea, fsParameterIdentifier.WashTime, fsParameterIdentifier.WashLiquidVolFlowRate, fsParameterIdentifier.WashLiquidMassFlowRate, fsParameterIdentifier.SpecificWashOutConcentration, fsParameterIdentifier.SpecificAverageWashOut, fsParameterIdentifier.SpecificWashOutConcentrationInCake, fsParameterIdentifier.WashOutConcentrationInWashfiltrate, fsParameterIdentifier.AverageWashOutConcentration, fsParameterIdentifier.WashOutConcentrationInCake, fsParameterIdentifier.SpecificWashOutXStar, fsParameterIdentifier.SpecificWashOutX, fsParameterIdentifier.CakeWashOutContent); fsParametersGroup washDatagroup = AddOnlyCalculatedGroup( fsParameterIdentifier.SpecificWashfiltrate, fsParameterIdentifier.VolumeOfWashfiltrate, fsParameterIdentifier.MassOfWashfiltrate, fsParameterIdentifier.CakeVolume, fsParameterIdentifier.CakeMass, fsParameterIdentifier.LiquidVolumeInCake, fsParameterIdentifier.LiquidMassInCake, fsParameterIdentifier.CakeMoistureContentRfw, fsParameterIdentifier.FeedVolumeFlowRate, fsParameterIdentifier.FeedSolidsMassFlowRate, fsParameterIdentifier.AverageVolumeFlowRate, fsParameterIdentifier.AverageMassFlowRate, fsParameterIdentifier.SpecificVolumeFlowRate, fsParameterIdentifier.SpecificMassFlowRate, fsParameterIdentifier.SpecificAverageVolumeFlowRate, fsParameterIdentifier.SpecificAverageMassFlowRate ); var machineGroups = new[] { abGroup, nsGroup, geometryGroup, timeGroup, lambdaGroup, uGroup, hcGroup, dpGroup, washGroup, washDatagroup }; for (int i = 0; i < machineGroups.Length; ++i) { machineGroups[i].Kind = fsParametersGroup.fsParametersGroupKind.MachiningSettingsParameters; AddGroupToUI(dataGrid, machineGroups[i], colors[i % colors.Length]); SetGroupInput(machineGroups[i], true); } #endregion }
protected override void InitializeGroups() { fsParametersGroup viscosityGroup = AddGroup( fsParameterIdentifier.MotherLiquidViscosity); fsParametersGroup filtrateGroup = AddGroup( fsParameterIdentifier.MotherLiquidDensity); fsParametersGroup solidsGroup = AddGroup( fsParameterIdentifier.SolidsDensity, fsParameterIdentifier.SuspensionDensity); fsParametersGroup concentrationGroup = AddGroup( fsParameterIdentifier.SuspensionSolidsMassFraction, fsParameterIdentifier.SuspensionSolidsVolumeFraction, fsParameterIdentifier.SuspensionSolidsConcentration); fsParametersGroup areaGroup = AddGroup( fsParameterIdentifier.FilterArea); fsParametersGroup pressureGroup = AddGroup( fsParameterIdentifier.PressureDifference); fsParametersGroup timeGroup = AddGroup( fsParameterIdentifier.RotationalSpeed, fsParameterIdentifier.CycleTime, fsParameterIdentifier.ResidualTime); fsParametersGroup sfGroup = AddGroup( fsParameterIdentifier.FiltrationTime, fsParameterIdentifier.SpecificFiltrationTime); fsParametersGroup porosityGroup = AddGroup( fsParameterIdentifier.SuspensionMass, fsParameterIdentifier.SuspensionVolume, fsParameterIdentifier.SolidsMass, fsParameterIdentifier.SolidsVolume, fsParameterIdentifier.CakeMass, fsParameterIdentifier.Qms, fsParameterIdentifier.Qsus, fsParameterIdentifier.SuspensionMassFlowrate, fsParameterIdentifier.CakePorosity, fsParameterIdentifier.CakePorosity0, fsParameterIdentifier.DryCakeDensity, fsParameterIdentifier.DryCakeDensity0, fsParameterIdentifier.Kappa, fsParameterIdentifier.Kappa0, fsParameterIdentifier.CakeMoistureContentRf, fsParameterIdentifier.CakeMoistureContentRf0); fsParametersGroup cakeFormationAndCharacterGroup = AddGroup( fsParameterIdentifier.CakeHeight, fsParameterIdentifier.FiltrateMass, fsParameterIdentifier.FiltrateVolume, fsParameterIdentifier.CakeVolume, fsParameterIdentifier.qf, fsParameterIdentifier.qmf, fsParameterIdentifier.CakePlusMediumPermeability, fsParameterIdentifier.CakePermeability, fsParameterIdentifier.CakePermeability0, fsParameterIdentifier.CakePlusMediumResistance, fsParameterIdentifier.CakeResistance, fsParameterIdentifier.CakeResistance0, fsParameterIdentifier.CakePlusMediumResistanceAlpha, fsParameterIdentifier.CakeResistanceAlpha, fsParameterIdentifier.CakeResistanceAlpha0, fsParameterIdentifier.PracticalCakePermeability); fsParametersGroup hceGroup = AddGroup( fsParameterIdentifier.FilterMediumResistanceHce, fsParameterIdentifier.FilterMediumResistanceRm); fsParametersGroup ncGroup = AddGroup( fsParameterIdentifier.CakeCompressibility); fsParametersGroup neGroup = AddGroup( fsParameterIdentifier.Ne); var groups = new[] { viscosityGroup, filtrateGroup, solidsGroup, concentrationGroup, areaGroup, pressureGroup, timeGroup, sfGroup, porosityGroup, cakeFormationAndCharacterGroup, hceGroup, ncGroup, neGroup, }; 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.ResidualTime].OwningRow.Visible = false; }
protected override void InitializeGroups() { var colors = new[] { Color.FromArgb(255, 255, 230), Color.FromArgb(255, 230, 255) }; fsParametersGroup etaGroup = AddGroup( fsParameterIdentifier.MotherLiquidViscosity); //eta fsParametersGroup rhoGroup = AddGroup( fsParameterIdentifier.MotherLiquidDensity); //rho fsParametersGroup densitiesGroup = AddGroup( fsParameterIdentifier.SolidsDensity, //rho_s fsParameterIdentifier.SuspensionDensity); //rho_sus fsParametersGroup cGroup = AddGroup( fsParameterIdentifier.SuspensionSolidsMassFraction, //cm fsParameterIdentifier.SuspensionSolidsVolumeFraction, //cv fsParameterIdentifier.SuspensionSolidsConcentration); //c fsParametersGroup xgGroup = AddGroup( fsParameterIdentifier.xg); //xg fsParametersGroup sigma_gGroup = AddGroup( fsParameterIdentifier.sigma_g); //sigma_g fsParametersGroup sigma_sGroup = AddGroup( fsParameterIdentifier.sigma_s); //sigma_s fsParametersGroup underFlowGroup = AddGroup( fsParameterIdentifier.rf, //rf fsParameterIdentifier.DuOverD, //Du/D fsParameterIdentifier.UnderflowSolidsMassFraction); //cm_u fsParametersGroup cxdGroup = AddGroup( fsParameterIdentifier.OverflowSolidsMassFraction, //cmo fsParameterIdentifier.OverflowParticleSize, //x0_i fsParameterIdentifier.ReducedCutSize, //x’50 fsParameterIdentifier.MachineDiameter); //D fsParametersGroup numCyclonesGroup = AddGroup( fsParameterIdentifier.NumberOfCyclones); //n fsParametersGroup pressureGroup = AddGroup( fsParameterIdentifier.PressureDifference); //Dp fsParametersGroup qGroup = AddGroup( fsParameterIdentifier.FeedVolumeFlowRate, //Q fsParameterIdentifier.FeedSolidsMassFlowRate, //Qm fsParameterIdentifier.Qms); //Qms fsParametersGroup alpha1Group = AddGroup( fsParameterIdentifier.Alpha1); fsParametersGroup alpha2Group = AddGroup( fsParameterIdentifier.Alpha2); fsParametersGroup alpha3Group = AddGroup( fsParameterIdentifier.Alpha3); fsParametersGroup beta1Group = AddGroup( fsParameterIdentifier.Beta1); fsParametersGroup beta2Group = AddGroup( fsParameterIdentifier.Beta2); fsParametersGroup beta3Group = AddGroup( fsParameterIdentifier.Beta3); fsParametersGroup gamma1Group = AddGroup( fsParameterIdentifier.Gamma1); fsParametersGroup gamma2Group = AddGroup( fsParameterIdentifier.Gamma2); fsParametersGroup gamma3Group = AddGroup( fsParameterIdentifier.Gamma3); fsParametersGroup bigLOverDGroup = AddGroup( fsParameterIdentifier.bigLOverD); fsParametersGroup smallLOverDGroup = AddGroup( fsParameterIdentifier.smallLOverD); fsParametersGroup diOverDGroup = AddGroup( fsParameterIdentifier.DiOverD); fsParametersGroup doOverDGroup = AddGroup( fsParameterIdentifier.DoOverD); fsParametersGroup onlyCalculatedParametersGroup = AddGroup( fsParameterIdentifier.StokesNumber, fsParameterIdentifier.EulerNumber, fsParameterIdentifier.ReynoldsNumber, fsParameterIdentifier.AverageVelocity, fsParameterIdentifier.TotalEfficiency, fsParameterIdentifier.ReducedTotalEfficiency, fsParameterIdentifier.CycloneLength, fsParameterIdentifier.LengthOfCylindricalPart, fsParameterIdentifier.InletDiameter, fsParameterIdentifier.OutletDiameter, fsParameterIdentifier.UnderflowDiameter, fsParameterIdentifier.OverflowVolumeFlowRate, fsParameterIdentifier.OverflowMassFlowRate, fsParameterIdentifier.OverflowSolidsMassFlowRate, fsParameterIdentifier.UnderflowVolumeFlowRate, fsParameterIdentifier.UnderflowMassFlowRate, fsParameterIdentifier.UnderflowSolidsMassFlowRate, fsParameterIdentifier.OverflowMeanParticleSize, fsParameterIdentifier.UnderflowMeanParticleSize, fsParameterIdentifier.OverflowSolidsVolumeFraction, fsParameterIdentifier.OverflowSolidsConcentration, fsParameterIdentifier.UnderflowSolidsVolumeFraction, fsParameterIdentifier.UnderflowSolidsConcentration); var groups = new[] { etaGroup, rhoGroup, densitiesGroup, cGroup, xgGroup, sigma_gGroup, sigma_sGroup, underFlowGroup, cxdGroup, numCyclonesGroup, pressureGroup, qGroup, onlyCalculatedParametersGroup, alpha1Group, alpha2Group, alpha3Group, beta1Group, beta2Group, beta3Group, gamma1Group, gamma2Group, gamma3Group, bigLOverDGroup, smallLOverDGroup, diOverDGroup, doOverDGroup }; for (int i = 0; i < groups.Length; ++i) { AddGroupToUI(dataGrid, groups[i], colors[i % colors.Length]); SetGroupInput(groups[i], true); } SetGroupInput(onlyCalculatedParametersGroup, false); }