00001 #ifndef saltmat3_H
00002 #define saltmat3_H
00003
00004 #include <stdio.h>
00005 #include "genfile.h"
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 class saltmat3
00020 {
00021 public:
00022 saltmat3 (void);
00023 ~saltmat3 (void);
00024
00025 void matcond (matrix &d,long ri,long ci,long ipp);
00026 void matcond2 (matrix &d,long ri,long ci,long ipp);
00027 void matcap (double &c,long ri,long ci,long ipp);
00028
00029 void matcond1d (matrix &d,long ri,long ci,long ipp);
00030 void matcond2d (matrix &d,long ri,long ci,long ipp);
00031 void matcond3d (matrix &d,long ri,long ci,long ipp);
00032 void matcond2d2 (matrix &d,long ri,long ci,long ipp);
00033
00034 void read (XFILE *in);
00035
00036 double k11 (double x1,double x2,double x3,long ipp);
00037 double k12 (double x1,double x2,double x3,long ipp);
00038 double k13 (double x1,double x2,double x3,long ipp);
00039
00040 double k21 (double x1,double x2,double x3,long ipp);
00041 double k22 (double x1,double x2,double x3,long ipp);
00042 double k23 (double x1,double x2,double x3,long ipp);
00043
00044 double k31 (double x1,double x2,double x3,long ipp);
00045 double k32 (double x1,double x2,double x3,long ipp);
00046 double k33 (double x1,double x2,double x3,long ipp);
00047
00048 double c11 (double x1,double x2,double x3,long ipp);
00049 double c12 (double x1,double x2,double x3,long ipp);
00050 double c13 (double x1,double x2,double x3,long ipp);
00051
00052 double c21 (double x1,double x2,double x3,long ipp);
00053 double c22 (double x1,double x2,double x3,long ipp);
00054 double c23 (double x1,double x2,double x3,long ipp);
00055
00056 double c31 (double x1,double x2,double x3,long ipp);
00057 double c32 (double x1,double x2,double x3,long ipp);
00058 double c33 (double x1,double x2,double x3,long ipp);
00059
00060 void auxiliarydata (double x1,double x2,double x3);
00061
00062 double transmission_transcoeff(double trc,long ri,long ci,long nn,long bc,long ipp);
00063 double transmission_nodval(double nodval,long ri,long ci,long nn,long bc,long ipp);
00064 double transmission_flux(double nodval,long ri,long ci,long nn,long bc,long ipp);
00065
00066 double get_transmission_nodval_11(double bv,double x1,double x2,double x3,long bc,long ipp);
00067 double get_transmission_transcoeff_11(double x1,double x2,double x3,long bc,long ipp);
00068 double get_transmission_flux_11(double bv,double x1,double x2,double x3,long bc,long ipp);
00069
00070
00071 double get_othervalue(long compother,long ipp, double x1,double x2,double x3);
00072 void print_othervalue_name(FILE *out,long compother);
00073 double pgws(double t);
00074 double permeabilitavodnipary(double t, double p);
00075 void inverze_sorption_izoterm_data(double x1, double &fi, double &dfi);
00076 void sisotherm(int kod, double x1,double &fiw, double &dfdw);
00077 double linear_data(int kod, double x1,double x2, double x3);
00078 double kapa(int kod, double x1,double x2, double x3);
00079 double diffcoefiont(int kod, double x1,double x2, double x3);
00080 double mw, ma, gasr;
00081 void values_correction (vector & nv,long ipp);
00082 void Cf_check(double cf, double w, long ipp);
00083 void binding_izoterm_derivation(double x2, double & derbi);
00084 void kapa_values (int kod, long ipp, double &kapa, double av);
00085 void salt_diffusivity_values (int kod, long ipp, double &diff, double x2);
00086 void binding_izoterm_derivation_values (int kod, long ipp, double &dcbdcf, double x2);
00087 void initvalues (long ipp,long ido);
00088 void aux_values (long ipp);
00089 void hystereze (int matchar, int matchar2, double & outvalue, long ipp);
00090 void der_value_hyst (int matchar,int kod, double pv, double & outvalue,double & outvalue2, long ipp);
00091 double get_moisture(double rh);
00092 double get_rel_hum(double w);
00093 double derivation_dy_dx (int matchar, double prom, int pomk1, int pomk2);
00094
00095
00096 private:
00097 int kd;
00098 double a1,a2,a3;
00099 int MatChar [20];
00100 double MatConst [20];
00101 double MatData [20][4][150];
00102 double MatFunce [20][5];
00103 void CorD(int cislochar, int &kvyhl,double in, double x, double & y, double & z, double &z2);
00104 double Init[20];
00105 double k1[20],k2[20],k3[20],k4[20],k5[20],k6[20];
00106
00107
00108 };
00109
00110 #endif
00111