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 }
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; }
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; }
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 }
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 }
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(); }
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; }
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 }
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; }
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; }
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 }
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 }