public class sogutmakulesi
{
yashava yh;
Gas g;
  //options for string s: "tdb_twb"  kuru termometre - yaş termometre sıcaklığı
  //                      "tdb_rh"   kuru termometre sıcaklığı - bağıl nem
  //                      "tdb_w"    kuru termometre sıcaklığı - özgül nem
  //                      "tdb_tdew" kuru termometre sıcaklığı - çiğ noktası sıcaklığı
  //                      "tdb_pv"   kuru termometre sıcaklığı - su buharı basıncı
  //                      "tdb_dos"  kuru termometre sıcaklığı - degree of saturation
  //                      "tdb_h"    kuru termometre sıcaklığı - entalpi
  //                      "tdb_s"    kuru termometre sıcaklığı - entropi
  //                      "w_rh"     özgül nem    - bağıl humifdity
  // yaş hava çıktı değişkenleri
  // aa[0]=P; basınç bar
  // aa[1]=t; sıcaklık derece C
  // aa[2]=ap[2]; özgül hacim m^3/kg kuru hava
  // aa[3]=pv;   su buharı kısmi basıncı
  // aa[4]=Pa;   kuru hava kısmi basıncı
  // aa[5]=w;    mutlak nem kg nem/kg kuru hava
  // aa[6]=rh;   bağıl nem 
  // aa[7]=dos;  doygunluk derecesi
  // aa[8]=h;    entalpi
  // aa[9]=s;    entropi
  // aa[10]=tdp; çig noktası sıcaklığı
  // aa[11]=ha;  kuru hava entalpisi
  // aa[12]=hv;  subuharı (nem) entalpisi
  // aa[13]=w*hv; gizli ısı

  //buhar opsiyonları
  //sp[0] p basınç bar
  //sp[1] t sıcaklık derece C
  //sp[2] v özgül hacim m^3/kg nem
  //sp[3] h entalpi kJ/kg nem
  //sp[4] u iç enerj kJ/kg nem
  //sp[5] s entropi kJ/kg nem
  
// termodinamik çiftler s
// tv tp th tu ts tx
// pv    pt ph pu ps px
// vp    vt
double P;  
public sogutmakulesi(double Pi)
{
P=Pi;
yh=new yashava();
g=new Gas("air");
}

public double KaV_bolu_L(double mhava,double msu,double twi,double two, double t_kh, double t_yh,boolean plot)
{
// twi su giriş sıcaklığı
// two su çıkış sıcaklığı
// t_kh  giriş havası kuru hava sıcaklığı
// t_yh  giriş havası yaş hava sıcaklığı
// msu_bolu_mhava  su hava debi oranı
double msu_bolu_mhava=msu/mhava;
double dt=(twi-two)/40.0;
double Ha;
double Hw;
double dH1,dH2,dHavg;
double hsu;
double hsu_onceki;
double dhsu;
double tsu;
double yy=0;
double x[] = new double[41];
double y0[] = new double[41];
double y1[]=new double[41];
double y2[]=new double[41];
double c[]=yh.s.property("tp",two,P);
hsu=c[3];
double a1[]=yh.property("tdb_twb", t_kh,t_yh,P);
Ha=a1[8];
double a2[]=yh.property("tdb_rh", two,1.0,P);
Hw=a2[8];
dH1=Hw-Ha;
int i=0;
for(double t=two+dt;t<=twi;t+=dt)
{
x[i]=t;
y0[i]=Hw;
y1[i]=Ha;
y2[i]=1/(Hw-Ha);
double b[]=yh.s.property("tp",t,P);
hsu_onceki=hsu;
hsu=b[3];
dhsu=hsu-hsu_onceki;
Ha=Ha+msu_bolu_mhava*dhsu;
double a3[]=yh.property("tdb_rh", t,1.0,P);
Hw=a3[8];
dH2=Hw-Ha;
dHavg=(dH1+dH2)/2.0;
dH1=dH2;
yy+=dhsu/dHavg;
System.out.println(" t"+t+" Hw "+Hw+" Ha "+Ha+" dhsu "+dhsu+" dt "+dt);
i++;
}
x[i]=twi;
y0[i]=Hw;
y1[i]=Ha;
y2[i]=1/(Hw-Ha);
if(plot)
{
Plot p=new Plot(x,y0);
p.setPlabel("Soğutma kulesi KaV/L kule karekteristiği");
p.setXlabel("su sıcaklığı tw, derece C");
p.setYlabel("Yaş hava entalpisi, KJ/kg kuru hava");
p.addData(x,y1);
p.plot();
Plot p1=new Plot(x,y2);
p1.plot();
}
return yy;
}

public double K(double Vhava, double thava)
{
double T=thava+273.15;
double L=0.3*5;
double Re=Vhava*L/g.v(T)/g.vis(T);
double Pr=g.Prandtl(T);
double Cp=4187.0;
double k=g.k(T)*1e3;
double Nu=0.664*Math.pow(Re,0.5)*Math.pow(Pr,(1.0/3.0));
double h=Nu*k/L;
double K=h/Cp;
System.out.println("Re="+Re+"Pr="+Pr+"Nu="+Nu+"h="+h+"K="+K);
return K;
}

public double K1(double mhava,double msu,double a)
{return 0.004805539*Math.pow((7936.641439*msu),0.25)*Math.pow((7936.641439*mhava),0.75)/a;} 

}