Esempio n. 1
0
        public virtual void Execute()
        {
            exchanger.Execute();
            ExchangerOut ir = innerExchangerResult;

            result.Update(ir.P, ir.R, DefineCorrectionFactor(ir), ir.Mtd);
        }
Esempio n. 2
0
        public CompositeBaseExchanger()
        {
            mathFactorial = new MathFactorialCalculator();

            exchanger            = new CountercurrentExchanger();
            innerExchangerResult = new ExchangerOut();
            exchanger.BindResultData(innerExchangerResult);
        }
Esempio n. 3
0
        protected override double DefineCorrectionFactor(ExchangerOut data)
        {
            double rad_r2_1    = Sqrt(Pow(data.R, 2) + 1D);
            double P           = DefineCorrectionP(data);
            double numerator   = rad_r2_1 * DefinePartNumerator(P, data.R);
            double _2p_1_r     = 2D / P - 1D - data.R;
            double denominator = Lg((_2p_1_r + rad_r2_1) / (_2p_1_r - rad_r2_1));

            return(numerator / denominator);
        }
Esempio n. 4
0
        private double DefineCorrectionP(ExchangerOut data)
        {
            if (data.R == 1D)
            {
                double denominator = shellCount + data.P - shellCount * data.P;
                return(data.P / denominator);
            }

            double _1_pr    = 1D - data.P * data.R;
            double _1_p     = 1D - data.P;
            double quotient = _1_pr / _1_p;
            double radical  = Pow(quotient, 1D / shellCount);

            return((radical - 1D) / (radical - data.R));
        }
Esempio n. 5
0
 abstract protected double DefineCorrectionFactor(ExchangerOut data);
Esempio n. 6
0
 public void BindResultData(ExchangerOut data)
 {
     result = data;
 }
 protected override double DefineCorrectionFactor(ExchangerOut data)
 {
     return(r() / r0());
 }