public class HeatTransfer { public static void main(String[] args) { Fluid air= new Fluid(0.000017, 1.29, 1.005, 0.025, "aire"); Fluid water= new Fluid(0.001, 1000.0, 4.2, 0.607, "agua"); air.print(); if (air.getName().equals("aire")) { HeatPlate plate1= new HeatPlate(0.2, 0.04, 70.0, 2.0, 25.0, air, "placa1"); for (int i=1; i < 3; i++) { plate1.setL(0.2*i); plate1.setA(0.04*i*i); double hf= plate1.HeatFlow(); // double hp= plate1.hPlate(); // Método privado plate1.print(); plate1.printResult(); } // System.out.println(" Num de placas: " + i); // Fuera de ámbito // System.out.println(" Flujo de calor: " + hf); // Fuera de ámbito air.print(); water.print(); plate1.print(); } if (water.getName().equals("agua")) { air.print(); water.print(); // plate1.print(); // Fuera de ámbito } System.exit(0); } } class Fluid { // Ámbito del paquete; poner en archivo separado para que sea pública private double u; // Viscosidad del fluido (kg/m-sec) private double p; // Densidad del fluido (kg/m^3) private double Cp; // Calor específico del fluido (kJ/kg-K) private double k; // Conductividad del fluido (W/m-K) private String name; // Nombre del fluido public Fluid(double u, double p, double Cp, double k, String name) { this.u= u; this.p= p; this.Cp= Cp; this.k= k; this.name= name; } public double getU() {return u;} public double getP() {return p;} public double getCp() {return Cp;} public double getK() {return k;} public String getName() {return name;} public void print() { System.out.println(name + "\nu: " + u + "\np: " + p + "\nCp: " + Cp + "\nk: " + k + "\n"); } // (amplitud de los límites de velocidad del fluido/amplitud de los límites de temperatura del fluido) public double PrandtlNumber() { return 1000.0*Cp*u/k; // Conversión de unidades } } class HeatPlate { // Ámbito del paquete; poner en archivo separado para que sea pública private double L; // Longitud de la placa (m) private double A; // Área de la placa (m^2) private double Tw; // Temperatura de la placa/wall (constant) (C) private double v; // Velocidad del flujo libre del fluido (m/sec) private double Tf; // Temperatura del flujo libre del fluido (C) private String name; // Nombre de la placa private Fluid f; public HeatPlate(double L, double A, double Tw, double v, double Tf, Fluid f, String name) { this.L= L; this.A= A; this.Tw= Tw; this.v= v; this.Tf= Tf; this.f= f; this.name= name; } public void print() { System.out.println(name + "\nL: " + L + "\nA: " + A + "\nTw: " + Tw + "\nv: " + v + "\nTf: " + Tf); } public void printResult() { System.out.println("Pr: " + f.PrandtlNumber() + "\nRe: " + ReynoldsNumber() + "\nNu: " + NusseltNumber() + "\nhPlate: " + hPlate() + "\nFlujo de calor: " + HeatFlow()+ "\n"); } public String getName() {return name; } public void setL(double L) { this.L= L; } public void setA(double A) { this.A= A; } // (Esfuerzo de inercia del fluido/esfuerzo de viscosidad del fluido) Sin dimensión. public double ReynoldsNumber() { // Dif. que en tuberías double retval= f.getP()*v*L/f.getU(); return retval; // Nunca haga esto; es sólo para el ejemplo de ámbito } // (Se transmite calor desde la superficie/el fluido conduce el calor) public double NusseltNumber() { double Re= ReynoldsNumber(); double Pr= f.PrandtlNumber(); double retval= 0.664*Math.pow(Pr, 1.0/3.0)*Math.sqrt(Re); return retval; } // Tasa de transferencia del calor (watts/m^2-grados K) private double hPlate() { // Observe que el método es privado double retval= f.getK()*NusseltNumber()/L; return retval; } // Flujo de calor desde la placa (watts) public double HeatFlow() { double retval= hPlate()*A*(Tw-Tf); return retval; } // Temperatura de la capa de fluido próxima al wall (C) public double TFilm() { double retval= 0.5*(Tw+Tf); return retval; } }