So basically I have this assignment where I need to compute a Pxy Diagram of a species Mixture. I have to "guess" x1, x2, P (Pressure) such that all these calculations lead the last line in the code to equal 1.
Currently I am just copying and pasting the values of the roots into Zl and Zv. I know I know how to take one root i.e. the first by adding [[1]] but I do not know how to assign that to the appropriate variable. In this case I need the first root to equal Zl and the third root to Zv. This would save me like 30 minutes of copying and pasting. Here is the code. Its not a fun calculation.
bar = 10^5;
P = 1 bar;(*choose*)
x1 = 1;(*choose*)
x2 = 0;(*Choose*)
omega1 =
0.48 + 1.574 acc1 - 0.176 acc1^2;
a1 = 0.42748 (R^2 Tc1^2)/Pc1 (1 + omega1 (1 - Sqrt[Tred1]))^2
b1 = 0.08664 (R Tc1)/Pc1;
omega2 = 0.48 + 1.574 acc2 - 0.176 acc2^2;
a2 = 0.42748 (R^2 Tc2^2)/Pc2 (1 + omega2 (1 - Sqrt[Tred2]))^2;
b2 = 0.08664 (R Tc2)/Pc2;
a = x1^2 a1 + x2^2 a2 + 2.0 x1 x2 (1 - k12) Sqrt[a1 a2];
b = x1 b1 + x2 b2;
Ap = ( a P)/(R T)^2;
Bp = ( b P)/(R T);
**NRoots[Z^3 - Z^2 + (Ap - Bp - Bp^2) Z - Ap Bp == 0, Z]**
*How do get the first root equal Zl and third to equal Zv without just copying and pasting?*
**Zl = 0.005206170900992007;**
**Zv = 0.955658798860841**;
C1 = Ap/Bp (-b1/b + 2/a*(x1 a1 + x2 Sqrt[a1 a2] (1 - k12)));
C2 = Ap/Bp ((-b2/b) + (2/a) (x2 a2 + x1 Sqrt[a1 a2]*(1 - k12)));
phiL1 = Exp[b1/b (Zl - 1) - Log[(Zl - Bp)] - C1*Log[(Zl + Bp)/Zl]];
phiV1 = Exp[b1/b (Zv - 1) - Log[(Zv - Bp)] - C1*Log[(Zv + Bp)/Zv]];
phiL2 = Exp[b2/b (Zl - 1) - Log[(Zl - Bp)] - C2*Log[(Zl + Bp)/Zl]];
phiV2 = Exp[b2/b (Zv - 1) - Log[(Zv - Bp)] - C2*Log[(Zv + Bp)/Zv]];
K1 = phiL1/phiV1;
K2 = phiL2/phiV2;
**x1 K1 + x2 K2 (*Need to satisfy x1 K1+x2 K2\[Equal]1*)**