public class rankinearaısıtmalı
{
// steam snıfını kullanır
// çağrı
// steam b=new steam();
// double a[]=b.property("tp",30.0,1.01325);
// girdi parametreleri
// termodinamik set "tv" "tp" "th" "tu" "ts"tx"
//                  "pv" "pt" "ph" "pu" "ps" "px"
// çıkış parametreleri(a) a[0]=P a[1]=T a[2]=V a[3]=h
// a[4]u a[5]=s a[6]=x
double T[];
double P[];
double h[];
double s[];
double x[];
double etait,etaip;
double etacevrim;
double m;
double Wt,Wp,W;
double Qkazan,Qyogusturucu,Qaraısıtma,Qgiren;
steam b;
double Kin[],Kout[];  //  <<== 

public rankinearaısıtmalı(double mi,double t1,double P1, double Paraısıtma, double t3, double P4, double etaiti, double etaipi)
{
m=mi;
b=new steam();
T=new double[11];
P=new double[11];
h=new double[11];
s=new double[11];
x=new double[11];
T[1]=t1;
P[1]=P1;
P[2]=Paraısıtma;
P[3]=Paraısıtma;
T[3]=t3;

P[4]=P4;

etait=etaiti;
etaip=etaipi;
//c1=new double[2][20];
//c3=new double[2][20];
}
 
public void cevrimhesabi()
{
// Yüksek Basınçlı Türbin girişi
double a1[]=b.property("tp",T[1],P[1]);
h[1]=a1[3];
s[1]=a1[5];
// isentropik Y.B.Türbin çıkışı
s[0]=s[1];
P[0]=P[2];
double a0[]=b.property("ps",P[0],s[0]);
T[0]=a0[1];
h[0]=a0[3];
// gerçek Y.B.türbin çıkışı
h[2]=h[1]-etait*(h[1]-h[0]);
double a2[]=b.property("ph",P[2],h[2]);
T[2]=a2[1];
s[2]=a2[5];

//araısıtma


// Düşük Basınçlı Türbin girişi
double a3[]=b.property("tp",T[3],P[3]);
h[3]=a3[3];
s[3]=a3[5];
// isentropik Düşük B.Türbin çıkışı
s[8]=s[3];
P[8]=P[4];
double a8[]=b.property("ps",P[8],s[8]);
T[8]=a8[1];
h[8]=a8[3];
// gerçek Düşük B.türbin çıkışı
h[4]=h[3]-etait*(h[3]-h[8]);
double a4[]=b.property("ph",P[4],h[4]);
T[4]=a4[1];
x[4]=a4[6];
s[4]=a4[5];



// yoğuşturucu çıkışı
P[5]=P[4];
x[5]=0.0;
double a5[]=b.property("px",P[5],x[5]);
T[5]=a5[1];	
h[5]=a5[3];
s[5]=a5[5];

// isentropik pompa
P[6]=P[1];
s[6]=s[5];
double a6[]=b.property("ps",P[6],s[6]);
h[6]=a6[3];
s[6]=a6[5];
// gerçek pompa
h[7]=h[5]+(h[6]-h[5])/etaip;
P[7]=P[1];
double a7[]=b.property("ph",P[7],h[7]);
T[7]=a7[1];
s[7]=a7[5];
// kazan kaynama  bölgesi girişi
P[9]=P[1];
x[9]=0.0;
double a9[]=b.property("px",P[9],x[9]);
T[9]=a9[1];
s[9]=a9[5];
h[9]=a9[3];
// kazan kızgın buhar bölgesi girişi 
P[10]=P[1];
x[10]=1.0;
double a10[]=b.property("px",P[10],x[10]);
T[10]=a10[1];
s[10]=a10[5];
h[10]=a10[3];


Wt=m*((h[1]-h[2])+(h[3]-h[4]));
Wp=m*(h[7]-h[5]);
W=Wt-Wp;
Qkazan=m*(h[1]-h[7]);
Qaraısıtma=m*(h[3]-h[2]);
Qgiren=Qkazan+Qaraısıtma;

Qyogusturucu=m*(h[4]-h[5]);
etacevrim=W/Qgiren;

// kazan için girdi,çıktı verilerinin iletilmesi
Kin=a7;
Kout=a1;
//......


}


public double[][] degerler()
{
	
	cevrimhesabi();
	double m[][] = new double[2][];
		m[0] = Kin;			//kazan giriş entalpisi
		m[1] = Kout;        // kazan çıkış  bölgesi girişi
		
		/*   [][0]=" bars           =P :";
		     [][1]=" deg C          =T :";
		     [][2]=" m^3/kg         =v :";
		     [][3]=" KJ/kg          =h :";
		     [][4]=" KJ/kg          =u :";
		     [][5]=" KJ/kg          =s :";
		     [][6]=" kg vap/kg mix  =x :";
		     [][7]=" kg/m^3         =  :";		*/
				
		return m;
}

public double w_net()
{		
	cevrimhesabi();
		return W;
}

public String cikti()
{
cevrimhesabi();
String s="Basit Rankine çevrimi\n";
s+=" çevrim verimi    = "+etacevrim+"\n";
s+=" Türbinlerin üretiği güç = "+Wt+" kW\n";
s+=" Pompanın yaptığı iş = "+Wp+" kW\n";	
s+=" Net iş çıkışı    = "+W +" kW\n";
s+=" Toplam ısı girişi(Qgiren) = "+Qgiren +" kW\n";
s+=" Yoğuşturucu ısı çıkışı(Qçıkan) = "+Qyogusturucu +" kW\n";
s+=" h1 Yüksek basınçlı türbin girişi = "+h[1] +" kJ/kg\n";
s+=" h2 Yüksek basınçlı türbin çıkışı = "+h[2] +" kJ/kg\n";
s+=" h3 Alçak basınçlı türbin girişi = "+h[3] +" kJ/kg\n";
s+=" h4 Alçak basınçlı türbin çıkışı = "+h[4] +" kJ/kg\n";
s+=" h5 yoğuşturucu çıkışı = "+h[5] +" kJ/kg\n";
s+=" h6 pompa çıkışı = "+h[6] +" kJ/kg\n";
return s;
}

	

}
