00001 #ifndef KUNMAT_H
00002 #define KUNMAT_H
00003
00004 #include "genfile.h"
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 class kunmat
00039 {
00040 public:
00041 kunmat();
00042 ~kunmat();
00043
00044 void read(XFILE *in);
00045 void print(FILE *out);
00046
00047 void matcond (matrix &d,long ri,long ci,long ipp);
00048 void matcap (double &c,long ri,long ci,long ipp);
00049
00050 void matcond1d (matrix &d,long ri,long ci,long ipp);
00051 void matcond2d (matrix &d,long ri,long ci,long ipp);
00052 void matcond3d (matrix &d,long ri,long ci,long ipp);
00053
00054 void values_correction (vector &nv);
00055
00056 double derivative_of_saturated_water_vapor_pressure(double tk);
00057 double water_vapour_permeability(double tk, long ipp);
00058 double kmm(long ipp);
00059 double kmt(long ipp);
00060 double khm(long ipp);
00061 double kht(long ipp);
00062 double cmm(long ipp);
00063 double cmt(long ipp);
00064 double chm(long ipp);
00065 double cht(long ipp);
00066 double saturated_water_vapor_pressure(double tk);
00067 double latent_heat_of_evaporation_of_water(double tk);
00068 double derivative_of_the_enthalpy_density(long ipp);
00069 double hygroscopic_moisture(double rh, double tk);
00070 double derivative_of_the_sorption_isotherm_root(double rh, double tk);
00071 double derivative_of_retention_curve_root(double rh, double tk, long ipp);
00072 double sorption_izotherm_derivative_kk_hansen(double rh, double tk);
00073
00074
00075 double transmission_transcoeff(double trc,long ri,long ci,long nn,long bc,long ipp);
00076 double transmission_nodval(double nodval,double trc2,long ri,long ci,long nn,long bc,long ipp);
00077 double transmission_flux(double nodval,double trc2,long ri,long ci,long nn,long bc,long ipp);
00078
00079 double get_transmission_transcoeff_hh(double rh,double t,long bc,long ipp);
00080 double get_transmission_nodval_hh(double bv,double rh,double t,long bc,long ipp);
00081 double get_transmission_flux_hh(double bv,double rh,double t,long bc,long ipp);
00082
00083 double get_transmission_transcoeff_tt(double h,double t,long bc,long ipp);
00084 double get_transmission_nodval_tt(double bv,double h,double t,long bc,long ipp);
00085 double get_transmission_flux_tt(double bv,double h,double t,long bc,long ipp);
00086
00087 double get_othervalue(long compother,double rh,double t, long ipp);
00088 void print_othervalue_name(FILE *out,long compother);
00089
00090 void give_data(double rh,double Mhmc, double Smc, double Mhrh,double & moistakt);
00091
00092 double kapa_exp(double a, double b,double rh);
00093 void CorD(long charid,long &kvyhl,double x, double &y, double &z,double &z2);
00094 void sorption_izoterms_giva_data(long kod,double rh, double tk, double & moist, double & dmoistdrh, long ipp);
00095 double si_kk_hansen(double rh, double tk,double u, double a, double n);
00096
00097 double derivative_sorption_izoterm_data(double x1);
00098 void aux_values (long ipp,double *in,double *inp, double *ineq,double *out);
00099 void save_values (long ipp,double *out);
00100 void give_values (long ipp,double *av,double *eq);
00101 void initvalues (long ipp,long ido);
00102
00103 void kapa_values (long kod, long ipp,double x1, double &kapa);
00104
00105 private:
00106
00107 long kd;
00108 double a1,a2,a3;
00109
00110
00111
00112
00113 long MatChar [20];
00114
00115
00116 double MatFunce [20][5];
00117
00118 gfunct *data[20];
00119
00120
00121 void aux_values (long ipp);
00122
00123 double rho_m,rho_w,moist,dmoistdrh;
00124 double M, R;
00125
00126
00127
00128
00129 long kunzeltype;
00130 };
00131
00132 #endif