//private double[] conversion = new double[6]; private void getConversionParameters(IComponent component, out DefectParameters dfA, out DefectParameters dfB, out DefectParameters dfC, out DefectParameters free) { double lambdaA; double lambdaB; double lambdaC; double lambdaBulk; double kappaA, kappaB, kappaC; //tauA dfA.t = Math.Abs(component[1].Value); if (dfA.t > 1e-30) //taua { lambdaA = 1 / dfA.t; } else { lambdaA = 0; } //tauB dfB.t = Math.Abs(component[2].Value); if (dfB.t > 1e-30) //taua { lambdaB = 1 / dfB.t; } else { lambdaB = 0; } //tauC dfC.t = Math.Abs(component[3].Value); if (dfC.t > 1e-30) //taua { lambdaC = 1 / dfC.t; } else { lambdaC = 0; } //tauFree free.t = Math.Abs(component[7].Value); if (free.t > 1e-30) //taua { lambdaBulk = 1 / free.t; } else { lambdaBulk = 0; } //kappaA if (Math.Abs(component[4].Value) > 1e+10) { kappaA = 1e+10; } else { kappaA = Math.Abs(component[4].Value); } //kappaB if (Math.Abs(component[5].Value) > 1e+10) { kappaB = 1e+10; } else { kappaB = Math.Abs(component[5].Value); } //kappaC if (Math.Abs(component[6].Value) > 1e+10) { kappaC = 1e+10; } else { kappaC = Math.Abs(component[6].Value); } //lambdaEf = lambdaBulk + kappaA + kappaB double lambdaEf = lambdaBulk + kappaA + kappaB + kappaC; //intA if (Math.Abs(lambdaEf - lambdaA) > 1e-30) { dfA.i = kappaA / (lambdaEf - lambdaA); } else { dfA.i = 1; } //intB if (Math.Abs(lambdaEf - lambdaB) > 1e-30) { dfB.i = kappaB / (lambdaEf - lambdaB); } else { dfB.i = 1; } //intC if (Math.Abs(lambdaEf - lambdaC) > 1e-30) { dfC.i = kappaC / (lambdaEf - lambdaC); } else { dfC.i = 1; } //intFree = 1 - intA - intB //conversion[4] = 1 - conversion[0] - conversion[2]; if (lambdaEf > 1e-30) { free.t = 1 / lambdaEf; } else { free.t = 0; } free.i = 1 - dfA.i - dfB.i - dfC.i; }
//private double[] conversion = new double[6]; private void getConversionParameters(IComponent component, out DefectParameters trapp, out DefectParameters oPs, out DefectParameters pPs, out DefectParameters free) { double lambdaT; double lambdaPick; double lambdaFree; double lambdaoPs, lambdapPs; double kappa, mu; double tauPick; //tauT trapp.t = Math.Abs(component["tauT"].Value); if (trapp.t > 1e-30) //taua { lambdaT = 1 / trapp.t; } else { lambdaT = 0; } tauPick = Math.Abs(component["tauPick"].Value); if (tauPick > 1e-30) { lambdaPick = 1 / tauPick; } else { lambdaPick = 0; } //tau ortho-Ps lambdaoPs = lambdaPick + 1 / 142; oPs.t = 1 / lambdaoPs; //tau para-Ps lambdapPs = lambdaPick + 1 / 0.124; pPs.t = 1 / lambdapPs; //tauFree free.t = Math.Abs(component["taufree"].Value); if (free.t > 1e-30) //taua { lambdaFree = 1 / free.t; } else { lambdaFree = 0; } //kappa if (Math.Abs(component["kappa"].Value) > 1e+10) { kappa = 1e+10; } else { kappa = Math.Abs(component["kappa"].Value); } //mu if (Math.Abs(component["mu"].Value) > 1e+10) { mu = 1e+10; } else { mu = Math.Abs(component["mu"].Value); } //lambdaEf = lambdaBulk + kappaA + kappaB double lambdaEf = lambdaFree + kappa + mu; //intTrapp if (Math.Abs(lambdaEf - lambdaT) > 1e-30) { trapp.i = mu / (lambdaEf - lambdaT); } else { trapp.i = 1; //todo : inna intensywność (?) } //ortho-Ps if (Math.Abs(lambdaEf - lambdaoPs) > 1e-30) { oPs.i = 0.75 * kappa / (lambdaEf - lambdaoPs); } else { oPs.i = 1; } //para-Ps if (Math.Abs(lambdaEf - lambdapPs) > 1e-30) { pPs.i = 0.25 * kappa / (lambdaEf - lambdapPs); } else { pPs.i = 1; } //intFree = 1 - intA - intB //conversion[4] = 1 - conversion[0] - conversion[2]; if (lambdaEf > 1e-30) { free.t = 1 / lambdaEf; } else { free.t = 0; } free.i = (lambdaFree - pPs.i * lambdapPs - oPs.i * lambdaoPs - trapp.i * lambdaT) / lambdaEf; }