% co2ventil.m

% Kalles fra s_co2ventil.m
% Tar inn trykk i p, hro, H fra s_co2tank.m, ventilåpning z samt T og p fra
% første delvolum i varmeveksleren. Sender ut wtot og xvap (til plott) samt
% wl, wv og Htot til s_pc.m

function ut=co2ventil(u)
global b

pinn= u(1);
rhoinn= u(2);
Hinn= u(3);     % [J/mol]
z = u(4);
Tut = u(5);
put = u(6);

wtot = z*b.Cv_ventil*rhoinn*sqrt(abs(pinn-put)/rhoinn);

Vl = 10;       % Bare tar et volum..
Nl_init= rhoinn*Vl/b.MW_pc(1);
Nl = Nl_init;
dNl= Nl;
while abs(dNl)>1e-6*Nl
    Al = co2_sw([Tut,Vl,Nl]);
    dNl= (put + Al.g(2))/(-Al.H(2,3));
    Nl = Nl + dNl;
end
Hl = (-Al.g(1)*Tut + Al.g(3)*Nl)/Nl;   % [J/mol]

Vv = 10;
Nv_init= put*Vv/(b.R*Tut);
Nv = Nv_init;
dNv= Nv;
while abs(dNv)>1e-6*Nv
    Av = co2_sw([Tut,Vv,Nv]);
    dNv= (put + Av.g(2))/(-Av.H(2,3));
    Nv = Nv + dNv;
end
Hv = (-Av.g(1)*Tut + Av.g(3)*Nv)/Nv;   % [J/mol]

wl = wtot*(1-Hinn/Hv)/(1-Hl/Hv);
wv = wtot-wl;

Hut = Hinn*wtot/b.MW_pc(1);     % [J/s]

xvap = Nv/(Nl+Nv);

ut = [wtot; xvap; wl; wv; Hut];
