31 #include "TControlK.h"
36 TControlK::TControlK() {
43 TControlK::~TControlK() {
50 void TControlK::LeeDatosEntrada(
char *Ruta, FILE *fich,
double DiametroTubo) {
56 FDiametro = DiametroTubo;
57 for(
int i = 0; i <= (int) strlen(Ruta); i++) {
58 DatosK_Re[i] = Ruta[i];
61 fscanf(fich,
"%s ", &FileK_Re);
62 strcat(DatosK_Re, FileK_Re);
64 FichK_Re = fopen(DatosK_Re,
"r");
65 if((FichK_Re = fopen(DatosK_Re,
"r")) == NULL) {
66 std::cout <<
"ERROR: Fichero de K vs Re no cargado";
68 fscanf(FichK_Re,
"%d ", &FNumeroDatos);
69 FVector_Re =
new double[FNumeroDatos];
70 FVector_K =
new double[FNumeroDatos];
72 for(
int i = 0; i < FNumeroDatos; i++) {
73 fscanf(FichK_Re,
"%lf ", &FVector_Re[i]);
76 for(
int i = 0; i < FNumeroDatos; i++) {
77 fscanf(FichK_Re,
"%lf ", &FVector_K[i]);
83 }
catch(exception &N) {
84 std::cout <<
"ERROR: TControlK::LeeDatosEntrada (DLL)" << std::endl;
85 std::cout <<
"Tipo de error: " << N.what() << std::endl;
93 void TControlK::CalculaK(
double velocidad,
double temperatura,
double presion,
double R_mezcla) {
95 double viscgas = 0., rho = 0., deltaRe = 0., VariacionRe = 0., K_Actual = 0.;
98 viscgas = 1.4615e-6 *
pow150(__units::degCToK(temperatura)) / (__units::degCToK(temperatura) + 110.4);
99 rho = __units::BarToPa(presion) / __units::degCToK(temperatura) / R_mezcla;
100 FRe = rho * velocidad * FDiametro / viscgas;
102 FK = Interp1(FRe, FVector_Re, FVector_K, FNumeroDatos);
104 }
catch(exception &N) {
105 std::cout <<
"ERROR: TControlK::CalculaK (DLL)" << std::endl;
106 std::cout <<
"Tipo de error: " << N.what() << std::endl;
114 #pragma package(smart_init)