1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
void addk(float *y, float *x, double t, double p, float *xkv)
{
typedef void(_stdcall* FunctionDLL_1)(double&,double&,double&,double&,double&,double&,double&,double&,double&,double&);
// On commence par mettre la température et la pression dans les unités de la DLL de Brice
// Présentement, elles sont dans les unités internes de CHEMCAD (RANKINE et PSIA)
double T = t*0.5556;
double P = p*0.0068948*1000000;
// On défini le chemin de la DLL
HINSTANCE DLL_path;
FunctionDLL_1 XsatTPtillnerroth4;
DLL_path = LoadLibrary("./PropThermo.dll");
XsatTPtillnerroth4 = (FunctionDLL_1)GetProcAddress(DLL_path,"XsatTPtillnerroth4");
double verification;
if (XsatTPtillnerroth4 != NULL)
//if (PRESSdll != NULL)
{
verification = 1;
}
else
{
verification = 0;
}
//On défini les variables à utiliser dans les fonctions en entrée et sortie
double variable_out1;
double variable_out2;
double variable_out3;
double variable_out4;
double variable_out5;
double variable_out6;
double variable_out7;
double variable_out8;
//On appelle alors la fonction en définissant en premier le nom des variables
XsatTPtillnerroth4(T,P,variable_out1,variable_out2,variable_out3,variable_out4,variable_out5,variable_out6,variable_out7,variable_out8);
// On libère la dll après sont calcul
FreeLibrary(DLL_path);
//On redéfini les variables avec des noms plus significatifs
double concentration_liquide = variable_out1;
double densité_liquide = variable_out2;
double densité_vapeur = variable_out3;
double concentration_vapeur = variable_out4;
double enthalpie_liquide = variable_out5;
double entropie_liquide = variable_out6;
double enthalpie_vapeur = variable_out7;
double entropie_vapeur = variable_out8;
//On transfère les concentrations en pourcentages en concentrations unitaire
double concentration_nh3_vapeur = concentration_vapeur;
double concentration_nh3_liquide = concentration_liquide;
double concentration_eau_vapeur = 1-concentration_nh3_vapeur;
double concentration_eau_liquide = 1-concentration_nh3_liquide;
//On fait le calcul pour le premier fluide qui est l'ammoniac
xkv[0] = concentration_nh3_vapeur/concentration_nh3_liquide;
xkv[1] = concentration_eau_vapeur/concentration_eau_liquide;
x[0] = concentration_nh3_liquide;
x[1] = concentration_eau_liquide;
y[0] = concentration_nh3_vapeur;
y[1] = concentration_eau_vapeur;
} |
Partager