00001 #ifndef GRUNEWALDMAT_H
00002 #define GRUNEWALDMAT_H
00003
00004 #include <stdio.h>
00005 #include "genfile.h"
00006
00007 class grunewaldmat
00008 {
00009 public:
00010 grunewaldmat (void);
00011 ~grunewaldmat (void);
00012
00013 void matcond (matrix &d,long ri,long ci,long ipp);
00014 void matcap (double &c,long ri,long ci,long ipp);
00015
00016 void matcond1d (matrix &d,long ri,long ci,long ipp);
00017 void matcond2d (matrix &d,long ri,long ci,long ipp);
00018 void matcond3d (matrix &d,long ri,long ci,long ipp);
00019
00020 void read (XFILE *in);
00021 void print(FILE *out);
00022
00023 double k11 (double x1,double x2,double x3,long ipp);
00024 double k12 (double x1,double x2,double x3,long ipp);
00025 double k13 (double x1,double x2,double x3,long ipp);
00026
00027 double k21 (double x1,double x2,double x3,long ipp);
00028 double k22 (double x1,double x2,double x3,long ipp);
00029 double k23 (double x1,double x2,double x3,long ipp);
00030
00031 double k31 (double x1,double x2,double x3,long ipp);
00032 double k32 (double x1,double x2,double x3,long ipp);
00033 double k33 (double x1,double x2,double x3,long ipp);
00034
00035 double c11 (double x1,double x2,double x3,long ipp);
00036 double c12 (double x1,double x2,double x3,long ipp);
00037 double c13 (double x1,double x2,double x3,long ipp);
00038
00039 double c21 (double x1,double x2,double x3,long ipp);
00040 double c22 (double x1,double x2,double x3,long ipp);
00041 double c23 (double x1,double x2,double x3,long ipp);
00042
00043 double c31 (double x1,double x2,double x3,long ipp);
00044 double c32 (double x1,double x2,double x3,long ipp);
00045 double c33 (double x1,double x2,double x3,long ipp);
00046
00047 void auxiliarydata (double x1,double x2,double x3,long ipp);
00048
00049 double transmission_transcoeff(double trc,long ri,long ci,long nn,long bc,long ipp);
00050 double transmission_nodval(double nodval,long ri,long ci,long nn,long bc,long ipp);
00051 double transmission_flux(double nodval,long ri,long ci,long nn,long bc,long ipp);
00052
00053 double get_transmission_nodval_11(double bv,double x1,double x2,double x3,long bc,long ipp);
00054 double get_transmission_transcoeff_11(double x1,double x2,double x3,long bc,long ipp);
00055 double get_transmission_flux_11(double bv,double x1,double x2,double x3,long bc,long ipp);
00056
00057
00058 double get_othervalue(long compother,long ipp, double x1,double x2,double x3);
00059 void print_othervalue_name(FILE *out,long compother);
00060
00061 void give_data_si_root_fi(double x1, double x2, double x3, double w_hyg, double w_sat, double rh_hyg, double shift_w, double & relh);
00062
00063 double kapa_exp(double a, double b,double x1, double x2, double x3);
00064 void CorD(int cislochar, int &kvyhl,double in,int rhw, double x, double & y, double & z, double &z2);
00065 void sorption_izoterms_giva_data(int kod,double x1, double x2, double x3, double & moist, double & dmoistdrh);
00066 double si_kk_hansen(double x1, double x2, double x3,double u, double a, double n);
00067
00068 void aux_values (long ipp,double *in,double *inp, double *ineq,double *out);
00069 void save_values (long ipp,double *out);
00070 void give_values (long ipp,double *av,double *inp, double *ineq);
00071 void initvalues (long ipp,long ido);
00072
00073 double density_lql(double x1,double x2, double x3);
00074 double derivation_density_droldt(double x1, double x2, double x3);
00075 double density_lqw(double x1, double x2, double x3);
00076 double derivation_density_drowdt(double x1, double x2, double x3);
00077 double saturation_water_vapour_pressure(double x1, double x2, double x3);
00078 double derivation_saturation_water_vapour_pressure_temperature(double x1, double x2, double x3);
00079 double specific_internal_energy_of_the_liquid_phase(double x1, double x2, double x3);
00080 double specific_internal_energy_of_the_liquid_water(double x1, double x2, double x3);
00081 double specific_internal_energy_of_water_vapour(double x1, double x2, double x3);
00082 double derivation_of_specific_internal_energy_of_the_solid_material_dependence_temperature(double x1, double x2, double x3);
00083 double derivation_of_specific_internal_energy_of_the_liquid_phase_dependence_temperature(double x1, double x2, double x3);
00084 double partial_water_vapour_pressure_function(double x1, double x2, double x3);
00085 double diffusion_number_function(double x1, double x2, double x3);
00086 double specific_enthalpy_of_water_vapour_hv(double x1, double x2, double x3);
00087 void sorption_izotherm_derivation(double x1, double x2, double x3, double & derfi);
00088 double derivation_specific_internal_energy_of_water_vapour(double x1, double x2, double x3);
00089 void get_rel_hum(double w, double &fi, double &dfdw);
00090 double sortpion_isotherm_root_shifted(double x1, double w_hyg, double rh_hyg);
00091 void give_data_si_root_dfidw(double x1, double x2, double x3, double rh_hyg, double w_sat, double w_hyg, double shift_w, double & dfdw);
00092 double get_moisture(double rh);
00093 double give_kapa(double x1, double x2);
00094
00095 private:
00096 double rom;
00097 double row;
00098 double rov;
00099 double pvs;
00100 double dpvsdt;
00101 double drowdt;
00102 double droldt;
00103 double dfidt;
00104 double pv;
00105 double rol;
00106 double ul;
00107 double uv;
00108 double dumdt;
00109 double duvdt;
00110 double duldt;
00111 double hv;
00112 double pir;
00113 double relhum;
00114 double dp;
00115 double dvn;
00116 double mi;
00117 double dfidw;
00118 double kapa;
00119 double lambda;
00120 double cmat;
00121
00122
00123 int MatChar [20];
00124 double MatConst [20];
00125 double MatData [20][3][150];
00126 double MatFunce [20][5];
00127
00128 int madripom;
00129 int kd;
00130 double a1,a2,a3;
00131
00132 };
00133
00134 #endif
00135
00136