import java.lang.Integer;
import java.awt.*;
import java.awt.event.*;
import java.awt.font.*;
import java.awt.geom.*;
import java.awt.image.*;
import javax.swing.*;
import java.util.Locale;
import java.text.*;

public class sogutmakulesi
{
//değişken tanımı
//P : atmosfer basıncı bar
//Q : çekilen ısı enerjisi KW
//T[0]: hava giriş (atmosfer) sıcaklığı
//f0: hava giriş (atmosfer) sanal nem 0-1
//T[1]: hava çıkış sıcaklığı
//f1: hava çıkış sanal nem 0-1
//ma: hava debisi kg/s
//m2: enerji çekiş ısı değiştirgeci debisi
//T[2]: enerji çekiş ısı değiştirgeci giriş (sistem çıkış) sıcaklığı derece C
//T[3]: enerji çekiş ısı değiştirgeci çıkış (sistem giriş) sıcaklığı derece C
//T[4]: soğumuş soğutma kulesi sıcaklığı derece C
//T[5]: soğutma kulesi sıcaklığı ısı değiştirgeci çıkışı derece C
//m5  : sğutma kulesi çıkış debisi kg/s
//T[6]: besleme suyu sıcaklığı derece C
//m6  : besleme suyu debisi kg/s
//T[7]: soğutma kulesi giriş sıcaklığı derece C
yashava yh;
steamT st;
double T[]; 
double f[];
double w[];
double h[];
double Twb[];
double ma,m2,m5,m6,m7;
double Q;

public sogutmakulesi(double P,double Qi,double T0,double f0,double T1,double f1,double T2,double T5,double T6,double m5)
{
yh=new yashava();
st=new steamT();
Q=Qi;
T=new double[9];
f=new double[2];
w=new double[2];
h=new double[9];
Twb=new double[2];
hesapla(P,Q,T0,f0,T1,f1,T2,T5,T6,m5);
}

public void hesapla(double P,double Q,double T0,double f0,
double T1,double f1,double T2,double T6,double T7,double m5)
{
double Cp5;
double a[]=new double[15];
double b[]=new double[9];
a=yh.property("tdb_rh",T0,f0,P);
System.out.println(Matrix.toString(a));
T[0]=a[1];
w[0]=a[5];
h[0]=a[8];
f[0]=f0;
Twb[0]=a[14];//sistemdeki en düşük sıcaklık
a=yh.property("tdb_rh",T1,f1,P);
System.out.println(Matrix.toString(a));
T[1]=a[1];
w[1]=a[5];
h[1]=a[8];
f[1]=f1;
Twb[1]=a[14];
T[6]=T6;
b=st.property("tp",T6,P);
h[6]=b[3];
T[7]=T7;
b=st.property("tp",T7,P);
h[7]=b[3];
Cp5=h[5]/T[5];
ma=Q/((h[1]-h[0])-(w[1]-w[0])*h[6]);
m6=ma*(w[1]-w[0]);
m7=m6+m5;
h[7]=(ma*(h[1]-h[0])+m5*h[5])/m7;
T[7]=h[7]/Cp5;
h[4]=(m5*h[5]-Q)/m5;
T[4]=b[1];
b=st.property("ph",P,h[4]);
T[4]=b[1];
b=st.property("tp",T[4],P);
h[4]=b[3];
T[3]=T[4]+5.0;
b=st.property("tp",T[3],P);
h[3]=b[3];
T[2]=T2;
b=st.property("tp",T[2],P);
h[2]=b[3];
m2=Q/(T[2]-T[3]);
}
public double[] cikti()
{double a[]=new double[25];
 for(int i=0;i<=7;i++) {a[i]=T[i];a[i+10]=h[i];}
 a[8]=ma;
 a[9]=m2;
 a[18]=m5;
 a[19]=m7;
 a[20]=m6;
 a[21]=Twb[0];
 a[22]=Twb[1];
 a[23]=f[0];
 a[24]=f[1];
 System.out.println(Matrix.toString(a));
 return a;
}

public String[][] abc()
{String a[]=new String[25];
 for(int i=0;i<=7;i++) {a[i]=""+T[i];a[i+10]=""+h[i];}
 a[8]=""+ma;
 a[9]=""+m2;
 a[18]=""+m5;
 a[19]=""+m7;
 a[20]=""+m6;
 a[21]=""+Twb[0];
 a[22]=""+Twb[1];
 a[23]=""+f[0];
 a[24]=""+f[1];
 String b[][]=new String[3][25];
 b[0][0]="T0 hava girişi sıcaklık";
 b[0][1]="T1 hava çıkışı scalık";
 b[0][2]="T2 ısı değiştirgeci girişi sıcaklık";
 b[0][3]="T3 ısı değiştirgeci çıkışı sıcaklık";
 b[0][4]="T4 Soğutma kulesi su sıcaklık";
 b[0][5]="T5 Soğutma kulesi su sıcaklık";
 b[0][6]="T6 Soğutma kulesi besleme suyu sıcaklık";
 b[0][7]="T7 Soğutma kulesi su giriş sıcaklık";
 b[0][8]="ma hava debisi";
 b[0][9]="m2 ısı değiştirgeci su debisi";
 b[0][10]="h0 hava girişi entalpi";
 b[0][11]="h1 hava çıkışı scalık";
 b[0][12]="h2 ısı değişhirgeci girişi entalpi";
 b[0][13]="h3 ısı değişhirgeci çıkışı entalpi";
 b[0][14]="h4 Soğutma kulesi su entalpi";
 b[0][15]="h5 Soğutma kulesi su entalpi";
 b[0][16]="h6 Soğutma kulesi besleme suyu entalpi";
 b[0][17]="h7 Soğutma kulesi su giriş entalpi";

 b[0][18]="m5 soğutma kulesi çıkış debisi";
 b[0][19]="m7 soğutma kulesi giriş debisi";
 b[0][20]="m6 soğutma kulesi besleme suyu debisi";
  b[0][21]="Twb0 soğutma kulesi giriş yaş hava sıcaklığı";
 b[0][22]="Twb1 soğutma kulesi çıkış yaş hava sıcaklığı";
 
 b[0][23]="f0 soğutma kulesi giriş bağıl nem";
 b[0][24]="f1 soğutma kulsi çıkış bağıl nem";
 b[1]=a;
 b[2][0]=" ";
 b[2][1]=" ";
 b[2][2]=" ";
 b[2][3]=" ";
 b[2][4]=" ";
 b[2][5]=" ";
 b[2][6]=" ";
 b[2][7]=" ";
 b[2][8]=" ";
 b[2][9]=" ";
 b[2][10]=" ";
 b[2][11]=" ";
 b[2][12]=" ";
 b[2][13]=" ";
 b[2][14]=" ";
 b[2][15]=" ";
 b[2][16]=" ";
 b[2][17]=" ";

 b[2][18]=" ";
 b[2][19]=" ";
 b[2][20]=" ";
  b[2][21]=" ";
 b[2][22]=" ";
 
 b[2][23]=" ";
 b[2][24]=" ";
 return b;
}}