Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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
            });
        }
Ejemplo n.º 4
0
 private static void SubstituteGroup(Dictionary <fsParameterIdentifier, fsParametersGroup> parameterToGroup,
                                     fsParametersGroup initialGroup, fsParametersGroup newGroup)
 {
     foreach (fsParameterIdentifier parameter in initialGroup.Parameters)
     {
         parameterToGroup[parameter] = newGroup;
     }
 }
Ejemplo n.º 5
0
        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
            });
        }
Ejemplo n.º 6
0
        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);
                }
            }
        }
Ejemplo n.º 7
0
        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
            });
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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
        }
Ejemplo n.º 10
0
        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;
        }
Ejemplo n.º 11
0
        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);
        }