Esempio n. 1
0
        public fsCakeFormationDpConstCalculator()
        {
            #region Parameters Initialization

            m_suspensionDensity = AddConstant(fsParameterIdentifier.SuspensionDensity);
            m_solidsDensity     = AddConstant(fsParameterIdentifier.SolidsDensity);
            m_etaf      = AddConstant(fsParameterIdentifier.MotherLiquidViscosity);
            m_hce0      = AddConstant(fsParameterIdentifier.FilterMediumResistanceHce0);
            m_porosity0 = AddConstant(fsParameterIdentifier.CakePorosity0);
            AddConstant(fsParameterIdentifier.Kappa0);
            m_pc0 = AddConstant(fsParameterIdentifier.CakePermeability0);
            m_ne  = AddConstant(fsParameterIdentifier.Ne);
            m_nc  = AddConstant(fsParameterIdentifier.CakeCompressibility);
            m_volumeConcentration = AddConstant(fsParameterIdentifier.SuspensionSolidsVolumeFraction);

            m_filterArea = AddVariable(fsParameterIdentifier.FilterArea);

            m_pressure = AddVariable(fsParameterIdentifier.PressureDifference);

            m_cycleTime       = AddVariable(fsParameterIdentifier.CycleTime);
            m_rotationalSpeed = AddVariable(fsParameterIdentifier.RotationalSpeed);

            m_formationRelativeTime  = AddVariable(fsParameterIdentifier.SpecificFiltrationTime);
            m_formationTime          = AddVariable(fsParameterIdentifier.FiltrationTime);
            m_cakeHeight             = AddVariable(fsParameterIdentifier.CakeHeight);
            m_suspensionMass         = AddVariable(fsParameterIdentifier.SuspensionMass);
            m_suspensionVolume       = AddVariable(fsParameterIdentifier.SuspensionVolume);
            m_suspensionMassFlowrate = AddVariable(fsParameterIdentifier.SuspensionMassFlowrate);

            m_porosity = AddVariable(fsParameterIdentifier.CakePorosity);
            m_pc       = AddVariable(fsParameterIdentifier.CakePermeability);
            m_rc       = AddVariable(fsParameterIdentifier.CakeResistance);
            m_alpha    = AddVariable(fsParameterIdentifier.CakeResistanceAlpha);
            m_kappa    = AddVariable(fsParameterIdentifier.Kappa);

            #endregion

            #region Equations Initialization

            AddEquation(new fsDivisionInverseEquation(m_cycleTime, m_rotationalSpeed));
            AddEquation(new fsDivisionInverseEquation(m_rotationalSpeed, m_cycleTime));
            AddEquation(new fsProductEquation(m_formationTime, m_formationRelativeTime, m_cycleTime));
            AddEquation(new fsCakeHeightFromDpTf(m_cakeHeight, m_hce0, m_pc, m_kappa, m_pressure, m_formationTime, m_etaf));
            AddEquation(new fsVsusFromAreaAndCakeHeightEquation(m_suspensionVolume, m_filterArea, m_cakeHeight, m_kappa));
            AddEquation(new fsProductEquation(m_suspensionMass, m_suspensionDensity, m_suspensionVolume));
            AddEquation(new fsFrom0AndDpEquation(m_porosity, m_porosity0, m_pressure, m_ne));
            AddEquation(new fsFrom0AndDpEquation(m_pc, m_pc0, m_pressure, m_nc));
            AddEquation(new fsEpsKappaCvEquation(m_porosity, m_kappa, m_volumeConcentration));
            AddEquation(new fsAlphaPcEquation(m_alpha, m_pc, m_porosity, m_solidsDensity));
            AddEquation(new fsDivisionInverseEquation(m_rc, m_pc));
            AddEquation(new fsProductEquation(m_suspensionMass, m_suspensionMassFlowrate, m_cycleTime));

            #endregion
        }
Esempio n. 2
0
 public MapClass()
 {
     m_rhoS     = AddVariable(fsParameterIdentifier.SolidsDensity);
     m_eps      = AddVariable(fsParameterIdentifier.CakePorosity);
     m_pc0      = AddVariable(fsParameterIdentifier.CakePermeability0);
     m_rc0      = AddVariable(fsParameterIdentifier.CakeResistance0);
     m_alpha0   = AddVariable(fsParameterIdentifier.CakeResistanceAlpha0);
     m_nc       = AddVariable(fsParameterIdentifier.CakeCompressibility);
     m_pressure = AddVariable(fsParameterIdentifier.PressureDifference);
     m_pc       = AddVariable(fsParameterIdentifier.CakePermeability);
     m_rc       = AddVariable(fsParameterIdentifier.CakeResistance);
     m_alpha    = AddVariable(fsParameterIdentifier.CakeResistanceAlpha);
 }
        public fsRfFromWetDryCakeCalculator()
        {
            #region Parameters Initialization

            m_wetMass             = AddConstant(fsParameterIdentifier.WetCakeMass);
            m_dryMass             = AddConstant(fsParameterIdentifier.DryCakeMass);
            m_solidsMassFraction  = AddConstant(fsParameterIdentifier.SolutesMassFractionInLiquid);
            m_solidsConcentration = AddConstant(fsParameterIdentifier.SolutesConcentrationInCakeLiquid);
            m_liquidDensity       = AddConstant(fsParameterIdentifier.LiquidDensity);
            m_cakeMoistureContent = AddVariable(fsParameterIdentifier.CakeMoistureContentRf);
            m_internalC           = AddVariable(new fsParameterIdentifier("internalC"));

            #endregion

            Equations = null;
        }
Esempio n. 4
0
        public fsSuspensionSolidsMassFractionCalculator()
        {
            #region Parameters Initialization

            m_suspensionMass      = AddConstant(fsParameterIdentifier.SuspensionMass);
            m_dryMass             = AddConstant(fsParameterIdentifier.DryCakeMass);
            m_Cfm                 = AddConstant(fsParameterIdentifier.SolutesMassFractionInMotherLiquid);
            m_Cf                  = AddConstant(fsParameterIdentifier.SolutesConcentrationInMotherLiquid);
            m_motherLiquidDensity = AddConstant(fsParameterIdentifier.MotherLiquidDensity);
            m_Cm                  = AddVariable(fsParameterIdentifier.SuspensionSolidsMassFraction);
            m_internalC           = AddVariable(new fsParameterIdentifier("internalC"));

            #endregion

            Equations = null;
        }
Esempio n. 5
0
        public fsRm0Hce0Calculator()
        {
            #region Parameters Initialization

            m_hce0 = AddVariable(fsParameterIdentifier.FilterMediumResistanceHce0);
            m_rm0  = AddVariable(fsParameterIdentifier.FilterMediumResistanceRm0);
            m_pc0  = AddConstant(fsParameterIdentifier.CakePermeability0);

            #endregion

            #region Equations Initialization

            AddEquation(new fsProductEquation(m_hce0, m_pc0, m_rm0));

            #endregion
        }
Esempio n. 6
0
        public fsRfFromCakeSaturationCalculator()
        {
            #region Parameters Initialization

            m_liquidDensity       = AddConstant(fsParameterIdentifier.LiquidDensity);
            m_solidsDensity       = AddConstant(fsParameterIdentifier.SolidsDensity);
            m_cakePorosity        = AddVariable(fsParameterIdentifier.CakePorosity);
            m_cakeSaturation      = AddVariable(fsParameterIdentifier.CakeSaturation);
            m_cakeMoistureContent = AddVariable(fsParameterIdentifier.CakeMoistureContentRf);

            #endregion

            #region Equations Initialization

            Equations.Add(new fsMoistureContentFromCakeSaturationEquation(m_liquidDensity, m_solidsDensity, m_cakePorosity, m_cakeMoistureContent, m_cakeSaturation));

            #endregion
        }
Esempio n. 7
0
        private static void ReflectionTest()
        {
            Dictionary <fsParameterIdentifier, fsCalculatorParameter> m_variables = new Dictionary <fsParameterIdentifier, fsCalculatorParameter>();

            var list = new[] {
                fsParameterIdentifier.SolidsDensity,
                fsParameterIdentifier.CakePorosity,
                fsParameterIdentifier.CakePermeability0,
                fsParameterIdentifier.CakeResistance0,
                fsParameterIdentifier.CakeResistance0,
                fsParameterIdentifier.CakeCompressibility,
                fsParameterIdentifier.PressureDifference,
                fsParameterIdentifier.CakePermeability,
                fsParameterIdentifier.CakeResistance,
                fsParameterIdentifier.CakeResistanceAlpha
            };

            foreach (var x in list)
            {
                m_variables[x] = new fsCalculatorVariable(x);
            }

            double start = DateTime.Now.TimeOfDay.TotalMilliseconds;

            var c = new ReflectionClass();

            for (int it = 0; it < ITERATIONS; ++it)
            {
                c.CopyValuesToStorage(m_variables);
                m_variables[list[it % list.Length]].Value = new fsValue((it + 1.0) / 3);
                c.ReadDataFromStorage(m_variables);
            }

            double end = DateTime.Now.TimeOfDay.TotalMilliseconds;

            System.Console.WriteLine("ReflectionTest running time: " + (end - start));
            System.Console.WriteLine();
            foreach (var p in m_variables)
            {
                System.Console.WriteLine(p.Key.Name + ": " + p.Value);
            }
            System.Console.WriteLine();
            System.Console.WriteLine();
        }
Esempio n. 8
0
        public fsMsusHcConcaveCylindricAreaCalculator()
        {
            #region Parameters Initialization

            m_filtrateDensity      = AddVariable(fsParameterIdentifier.MotherLiquidDensity);
            m_solidsDensity        = AddVariable(fsParameterIdentifier.SolidsDensity);
            m_suspensionDensity    = AddVariable(fsParameterIdentifier.SuspensionDensity);
            m_solidsMassFraction   = AddVariable(fsParameterIdentifier.SuspensionSolidsMassFraction);
            m_solidsVolumeFraction = AddVariable(fsParameterIdentifier.SuspensionSolidsVolumeFraction);
            m_solidsConcentration  = AddVariable(fsParameterIdentifier.SuspensionSolidsConcentration);

            m_porosity = AddVariable(fsParameterIdentifier.CakePorosity);
            m_kappa    = AddVariable(fsParameterIdentifier.Kappa);

            m_filterArea          = AddVariable(fsParameterIdentifier.FilterArea);
            m_filterDiameter      = AddVariable(fsParameterIdentifier.MachineDiameter);
            m_filterB             = AddVariable(fsParameterIdentifier.MachineWidth);
            m_filterBOverDiameter = AddVariable(fsParameterIdentifier.WidthOverDiameterRatio);

            m_cakeHeight       = AddVariable(fsParameterIdentifier.CakeHeight);
            m_suspensionMass   = AddVariable(fsParameterIdentifier.SuspensionMass);
            m_suspensionVolume = AddVariable(fsParameterIdentifier.SuspensionVolume);

            #endregion

            #region Equations Initialization

            AddEquation(new fsMassConcentrationEquation(m_solidsMassFraction, m_filtrateDensity, m_solidsDensity, m_suspensionDensity));
            AddEquation(new fsVolumeConcentrationEquation(m_solidsVolumeFraction, m_filtrateDensity, m_solidsDensity, m_suspensionDensity));
            AddEquation(new fsConcentrationEquation(m_solidsConcentration, m_filtrateDensity, m_solidsDensity, m_suspensionDensity));

            AddEquation(new fsEpsKappaCvEquation(m_porosity, m_kappa, m_solidsVolumeFraction));
            AddEquation(new fsCylinderAreaEquation(m_filterArea, m_filterDiameter, m_filterB));
            AddEquation(new fsProductEquation(m_filterB, m_filterDiameter, m_filterBOverDiameter));

            AddEquation(new fsSuspensionMassFromHcEpsConcaveCylindircAreaEquation(m_suspensionMass, m_porosity, m_solidsDensity, m_filterArea, m_filterDiameter, m_cakeHeight, m_solidsMassFraction));
            //AddEquation(new fsSuspensionVolumeFromHcEpsConvexCylindircAreaEquation(m_suspensionVolume, m_porosity, m_filterArea, m_cakeHeight, m_solidsVolumeFraction));
            //AddEquation(new fsSuspensionVolumeFromHcKappaConvexCylindircAreaEquation(m_suspensionVolume, m_kappa, m_filterArea, m_cakeHeight));

            AddEquation(new fsProductEquation(m_suspensionMass, m_suspensionVolume, m_suspensionDensity));

            #endregion
        }
        public fsCakeWashOutContentCalculator()
        {
            #region Parameters Initialization

            m_wetMass = AddConstant(fsParameterIdentifier.WetCakeMass);
            m_dryMass = AddConstant(fsParameterIdentifier.DryCakeMass);
            m_liquidMassForResuspension = AddConstant(fsParameterIdentifier.LiquidMassForResuspension);
            m_solidsMassFraction        = AddConstant(fsParameterIdentifier.LiquidWashOutMassFraction);
            m_solidsConcentration       = AddConstant(fsParameterIdentifier.LiquidWashOutConcentration);
            m_internalC           = AddVariable(new fsParameterIdentifier("internalC"));
            m_liquidDensity       = AddConstant(fsParameterIdentifier.LiquidDensity);
            m_cakeMoistureContent = AddVariable(fsParameterIdentifier.CakeMoistureContentRf);
            m_pH                 = AddConstant(fsParameterIdentifier.Ph);
            m_pHcake             = AddVariable(fsParameterIdentifier.PHcake);
            m_cakeWashOutContent = AddVariable(fsParameterIdentifier.CakeWashOutContent);

            #endregion

            Equations = null;
        }
Esempio n. 10
0
        public fsDensityConcentrationCalculator()
        {
            #region Parameters Initialization

            m_filtrateDensity      = AddVariable(fsParameterIdentifier.MotherLiquidDensity);
            m_solidsDensity        = AddVariable(fsParameterIdentifier.SolidsDensity);
            m_suspensionDensity    = AddVariable(fsParameterIdentifier.SuspensionDensity);
            m_solidsMassFraction   = AddVariable(fsParameterIdentifier.SuspensionSolidsMassFraction);
            m_solidsVolumeFraction = AddVariable(fsParameterIdentifier.SuspensionSolidsVolumeFraction);
            m_solidsConcentration  = AddVariable(fsParameterIdentifier.SuspensionSolidsConcentration);

            #endregion

            #region Equations Initialization

            AddEquation(new fsMassConcentrationEquation(m_solidsMassFraction, m_filtrateDensity, m_solidsDensity, m_suspensionDensity));
            AddEquation(new fsVolumeConcentrationEquation(m_solidsVolumeFraction, m_filtrateDensity, m_solidsDensity, m_suspensionDensity));
            AddEquation(new fsConcentrationEquation(m_solidsConcentration, m_filtrateDensity, m_solidsDensity, m_suspensionDensity));

            #endregion
        }
Esempio n. 11
0
        public fsPkeFromPcRcCalculator()
        {
            #region Parameters Initialization

            m_pc               = AddVariable(fsParameterIdentifier.CakePermeability);
            m_rc               = AddVariable(fsParameterIdentifier.CakeResistance);
            m_alpha            = AddVariable(fsParameterIdentifier.CakeResistanceAlpha);
            m_rhos             = AddConstant(fsParameterIdentifier.SolidsDensity);
            m_eps              = AddConstant(fsParameterIdentifier.CakePorosity);
            m_rhosBulk         = AddConstant(fsParameterIdentifier.DryCakeDensity);
            m_sigma            = AddConstant(fsParameterIdentifier.SurfaceTensionLiquidInCake);
            m_pkeSt            = AddConstant(fsParameterIdentifier.StandardCapillaryPressure);
            m_pke              = AddVariable(fsParameterIdentifier.CapillaryPressure);
            m_localPc          = AddVariable(new fsParameterIdentifier("local Pc"));
            m_localBulk        = AddVariable(new fsParameterIdentifier("local Bulk"));
            m_localOneMinusEps = AddVariable(new fsParameterIdentifier("1 - eps"));

            #endregion

            Equations = null;
        }
Esempio n. 12
0
        public fsCakePorosityCalculator()
        {
            #region Parameters Initialization

            m_machineArea           = AddVariable(fsParameterIdentifier.FilterArea);
            m_machineDiameter       = AddVariable(fsParameterIdentifier.MachineDiameter);
            m_filterElementDiameter = AddVariable(fsParameterIdentifier.FilterElementDiameter);
            m_cakeArea    = AddVariable(new fsParameterIdentifier("cakeArea"));
            m_b           = AddVariable(fsParameterIdentifier.MachineWidth);
            m_bOverD      = AddVariable(fsParameterIdentifier.WidthOverDiameterRatio);
            m_rhoL        = AddConstant(fsParameterIdentifier.LiquidDensity);
            m_rhoS        = AddConstant(fsParameterIdentifier.SolidsDensity);
            m_cakeHeight  = AddConstant(fsParameterIdentifier.CakeHeight);
            m_wetCakeMass = AddConstant(fsParameterIdentifier.WetCakeMass);
            m_dryCakeMass = AddConstant(fsParameterIdentifier.DryCakeMass);
            m_c           = AddConstant(fsParameterIdentifier.SolutesConcentrationInCakeLiquid);
            m_eps         = AddVariable(fsParameterIdentifier.CakePorosity);

            #endregion

            Equations = null;
        }
Esempio n. 13
0
        public fsMsusHcPlainAreaCalculator()
        {
            #region Parameters Initialization

            m_filtrateDensity      = AddVariable(fsParameterIdentifier.MotherLiquidDensity);
            m_solidsDensity        = AddVariable(fsParameterIdentifier.SolidsDensity);
            m_suspensionDensity    = AddVariable(fsParameterIdentifier.SuspensionDensity);
            m_solidsMassFraction   = AddVariable(fsParameterIdentifier.SuspensionSolidsMassFraction);
            m_solidsVolumeFraction = AddVariable(fsParameterIdentifier.SuspensionSolidsVolumeFraction);
            m_solidsConcentration  = AddVariable(fsParameterIdentifier.SuspensionSolidsConcentration);

            m_porosity = AddVariable(fsParameterIdentifier.CakePorosity);
            m_kappa    = AddVariable(fsParameterIdentifier.Kappa);

            m_filterArea       = AddVariable(fsParameterIdentifier.FilterArea);
            m_cakeHeight       = AddVariable(fsParameterIdentifier.CakeHeight);
            m_suspensionMass   = AddVariable(fsParameterIdentifier.SuspensionMass);
            m_suspensionVolume = AddVariable(fsParameterIdentifier.SuspensionVolume);

            #endregion

            #region Equations Initialization

            AddEquation(new fsMassConcentrationEquation(m_solidsMassFraction, m_filtrateDensity, m_solidsDensity, m_suspensionDensity));
            AddEquation(new fsVolumeConcentrationEquation(m_solidsVolumeFraction, m_filtrateDensity, m_solidsDensity, m_suspensionDensity));
            AddEquation(new fsConcentrationEquation(m_solidsConcentration, m_filtrateDensity, m_solidsDensity, m_suspensionDensity));

            AddEquation(new fsEpsKappaCvEquation(m_porosity, m_kappa, m_solidsVolumeFraction));

            AddEquation(new fsSuspensionMassFromHcEpsPlainAreaEquation(m_suspensionMass, m_porosity, m_solidsDensity, m_filterArea, m_cakeHeight, m_solidsMassFraction));
            AddEquation(new fsSuspensionVolumeFromHcEpsPlainAreaEquation(m_suspensionVolume, m_porosity, m_filterArea, m_cakeHeight, m_solidsVolumeFraction));
            AddEquation(new fsSuspensionVolumeFromHcKappaPlainAreaEquation(m_suspensionVolume, m_kappa, m_filterArea, m_cakeHeight));

            AddEquation(new fsProductEquation(m_suspensionMass, m_suspensionVolume, m_suspensionDensity));

            #endregion
        }
Esempio n. 14
0
        public fsPorosityCalculator()
        {
            #region Parameters Initialization

            fsCalculatorConstant ne = AddConstant(fsParameterIdentifier.Ne);
            fsCalculatorConstant pressureDifference  = AddConstant(fsParameterIdentifier.PressureDifference);
            fsCalculatorConstant volumeConcentration = AddConstant(fsParameterIdentifier.SuspensionSolidsVolumeFraction);
            fsCalculatorConstant solidsDensity       = AddConstant(fsParameterIdentifier.SolidsDensity);
            fsCalculatorConstant filtrateDensity     = AddConstant(fsParameterIdentifier.MotherLiquidDensity);
            fsCalculatorConstant solidsMass          = AddConstant(fsParameterIdentifier.SolidsMass);
            fsCalculatorConstant filtrationArea      = AddConstant(fsParameterIdentifier.FilterArea);
            fsCalculatorConstant cakeHight           = AddConstant(fsParameterIdentifier.CakeHeight);
            fsCalculatorConstant fitrationTime       = AddConstant(fsParameterIdentifier.FiltrationTime);
            fsCalculatorConstant qf       = AddConstant(fsParameterIdentifier.qf);
            fsCalculatorConstant mf       = AddConstant(fsParameterIdentifier.FiltrateMass);
            fsCalculatorConstant cakeMass = AddConstant(fsParameterIdentifier.CakeMass);

            fsCalculatorVariable porosity0             = AddVariable(fsParameterIdentifier.CakePorosity0);
            fsCalculatorVariable kappa0                = AddVariable(fsParameterIdentifier.Kappa0);
            fsCalculatorVariable cakeDrySolidsDensity0 = AddVariable(fsParameterIdentifier.DryCakeDensity0);

            fsCalculatorVariable porosity             = AddVariable(fsParameterIdentifier.CakePorosity);
            fsCalculatorVariable kappa                = AddVariable(fsParameterIdentifier.Kappa);
            fsCalculatorVariable cakeDrySolidsDensity = AddVariable(fsParameterIdentifier.DryCakeDensity);

            fsCalculatorVariable cakeWetDensity0              = AddVariable(fsParameterIdentifier.CakeWetDensity0);
            fsCalculatorVariable cakeMoistureContentRf0       = AddVariable(fsParameterIdentifier.CakeMoistureContentRf0);
            fsCalculatorVariable cakeWetMassSolidsFractionRs0 = AddVariable(fsParameterIdentifier.CakeWetMassSolidsFractionRs0);

            fsCalculatorVariable cakeWetDensity              = AddVariable(fsParameterIdentifier.CakeWetDensity);
            fsCalculatorVariable cakeMoistureContentRf       = AddVariable(fsParameterIdentifier.CakeMoistureContentRf);
            fsCalculatorVariable cakeWetMassSolidsFractionRs = AddVariable(fsParameterIdentifier.CakeWetMassSolidsFractionRs);

            #endregion

            #region Equations Initialization

            var one = new fsCalculatorConstant(new fsParameterIdentifier("one"))
            {
                Value = fsValue.One
            };

            AddEquation(new fsEpsKappaCvEquation(porosity0, kappa0, volumeConcentration));
            AddEquation(new fsCakeDrySolidsDensityEquation(cakeDrySolidsDensity0, porosity0, solidsDensity));

            AddEquation(new fsEpsKappaCvEquation(porosity, kappa, volumeConcentration));
            AddEquation(new fsCakeDrySolidsDensityEquation(cakeDrySolidsDensity, porosity, solidsDensity));

            AddEquation(new fsFrom0AndDpEquation(porosity, porosity0, pressureDifference, ne));

            AddEquation(new fsMoistureContentFromDensitiesAndPorosityEquation(cakeMoistureContentRf0, porosity0, filtrateDensity, solidsDensity));
            AddEquation(new fsSumEquation(one, cakeMoistureContentRf0, cakeWetMassSolidsFractionRs0));
            AddEquation(new fsCakeWetDensityFromRhofRhosPorosityEquation(cakeWetDensity0, filtrateDensity, solidsDensity, porosity0));

            AddEquation(new fsMoistureContentFromDensitiesAndPorosityEquation(cakeMoistureContentRf, porosity, filtrateDensity, solidsDensity));
            AddEquation(new fsSumEquation(one, cakeMoistureContentRf, cakeWetMassSolidsFractionRs));
            AddEquation(new fsCakeWetDensityFromRhofRhosPorosityEquation(cakeWetDensity, filtrateDensity, solidsDensity, porosity));

            AddEquation(new fsEpsFromMsAndHcEquation(porosity, solidsMass, filtrationArea, solidsDensity, cakeHight));
            AddEquation(new fsEpsFromMsAndQfEquation(porosity, volumeConcentration, solidsMass, filtrationArea, solidsDensity, fitrationTime, qf));
            AddEquation(new fsEpsFromMsAndMfEquation(porosity, volumeConcentration, solidsMass, filtrateDensity, solidsDensity, mf));
            AddEquation(new fsEpsFromMcAndQfEquation(porosity, volumeConcentration, cakeMass, filtrationArea, filtrateDensity, solidsDensity, fitrationTime, qf));

            #endregion
        }