예제 #1
0
        /// <summary>
        /// Ctor.
        /// </summary>
        /// <param name="ReactionRateConstants">constants[0]=PreExpFactor, constants[1]=ActivationTemperature, constants[2]=MassFraction0Exponent, constants[3]=MassFraction1Exponent</param>
        /// <param name="StoichiometricCoefficients"></param>

        /// <param name="MolarMasses">Array of molar masses. 0 Fuel. 1 Oxidizer, 2 to ns products.</param>
        /// <param name="EoS">MaterialLawCombustion</param>
        /// <param name="NumberOfReactants">The number of reactants (i.e. ns)</param>
        /// <param name="SpeciesIndex">Index of the species being balanced. (I.e. 0 for fuel, 1 for oxidizer, 2 for CO2, 3 for water)</param>
        public ReactionSpeciesSourceJacobi(double[] ReactionRateConstants, double[] StoichiometricCoefficients, double[] MolarMasses, MaterialLawCombustion EoS, int NumberOfReactants, int SpeciesIndex, double TRef, double cpRef, bool VariableOneStepParameters)
        {
            m_ArgumentOrdering = ArrayTools.Cat(new string[] { VariableNames.Temperature }, VariableNames.MassFractions(NumberOfReactants - 1));// Y4 is not a variable!!!!;
            this.StoichiometricCoefficients = StoichiometricCoefficients;
            this.ReactionRateConstants      = ReactionRateConstants;
            this.SpeciesIndex = SpeciesIndex;
            this.MolarMasses  = MolarMasses;
            this.EoS          = EoS;
            this.m_Da         = ReactionRateConstants[0];
            this.TRef         = TRef;
            this.cpRef        = cpRef;
            this.VariableOneStepParameters = VariableOneStepParameters;
        }
 /// <summary>
 /// Ctor.
 /// </summary>
 /// <param name="HeatReleaseFactor">Heat release computed from the sum of the product of the stoichiometric coefficient, partial heat capacity and molar mass of species alpha for all species. I.e.: sum(alpha = 1.. ns)[v_\alpha cp_alpha M_alpha]. Must be computed locally for non-constant partial heat capacities in later iterations of the code.</param>
 /// <param name="ReactionRateConstants">0. PreExpFactor/Damköhler number, 1. ActivationTemperature, 2. MassFraction0Exponent, 3. MassFraction1Exponent</param>
 /// <param name="OneOverMolarMass0MolarMass1"> 1/(M_infty^(a + b -1) * MolarMassFuel^a * MolarMassOxidizer^b). M_infty is the reference for the molar mass steming from non-dimensionalisation of the governing equations.</param>
 /// <param name="EoS">MaterialLawCombustion</param>
 public ReactionHeatSourceJacobi(double HeatReleaseFactor, double[] ReactionRateConstants, double[] molarmasses, MaterialLawCombustion EoS, double TRef, double cpRef, bool VariableOneStepParameters)
 {
     m_ArgumentOrdering         = new string[] { VariableNames.Temperature, VariableNames.MassFraction0, VariableNames.MassFraction1, VariableNames.MassFraction2, VariableNames.MassFraction3 };
     m_ParameterOrdering        = null;
     this.HeatReleaseFactor     = HeatReleaseFactor;
     this.ReactionRateConstants = ReactionRateConstants;
     this.molarMasses           = molarmasses;
     this.EoS   = EoS;
     m_Da       = ReactionRateConstants[0]; // Damköhler number
     this.TRef  = TRef;
     this.cpRef = cpRef;
     this.VariableOneStepParameters = VariableOneStepParameters;
 }