00001 #ifndef saltmat4_H
00002 #define saltmat4_H
00003
00004 #include <stdio.h>
00005 #include "genfile.h"
00006 #include "dampermeability.h"
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
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052 class saltmat4
00053 {
00054 public:
00055 saltmat4 (void);
00056 ~saltmat4 (void);
00057
00058 void read (XFILE *in);
00059 void print(FILE *out);
00060
00061
00062 void matcond (matrix &d,long ri,long ci,long ipp);
00063 void matcond2 (matrix &d,long ri,long ci,long ipp);
00064 void matcap (double &c,long ri,long ci,long ipp);
00065
00066 void matcond1d (matrix &d,long ri,long ci,long ipp);
00067 void matcond2d (matrix &d,long ri,long ci,long ipp);
00068 void matcond3d (matrix &d,long ri,long ci,long ipp);
00069 void matcond4d (matrix &d,long ri,long ci,long ipp);
00070 void matcond2d2 (matrix &d,long ri,long ci,long ipp);
00071
00072
00073 double k11 (long ipp);
00074 double k12 ();
00075 double k13 ();
00076 double k14 (long ipp);
00077
00078 double k21 (long ipp);
00079 double k22 (long ipp);
00080 double k23 ();
00081 double k24 ();
00082
00083 double k31 ();
00084 double k32 ();
00085 double k33 ();
00086 double k34 ();
00087
00088 double k41 (long ipp);
00089 double k42 ();
00090 double k43 ();
00091 double k44 (long ipp);
00092
00093
00094 double c11 (long ipp);
00095 double c12 ();
00096 double c13 ();
00097 double c14 ();
00098
00099 double c21 (long ipp);
00100 double c22 (long ipp);
00101 double c23 ();
00102 double c24 ();
00103
00104 double c31 (long ipp);
00105 double c32 (long ipp);
00106 double c33 ();
00107 double c34 ();
00108
00109 double c41 ();
00110 double c42 ();
00111 double c43 ();
00112 double c44 (long ipp);
00113
00114
00115 double transmission_transcoeff(double trc,long ri,long ci,long nid,long bc);
00116
00117
00118 double transmission_nodval(double nodval,long ri,long ci,long nid,long bc);
00119
00120
00121 double transmission_flux(double nodval,long ri,long ci,long nid,long bc);
00122 double get_transmission_flux_ww (double bv,double w,long bc);
00123
00124
00125 double get_othervalue(long compother,long ipp, double w,double cf,double cc,double t);
00126 void print_othervalue_name(FILE *out,long compother);
00127
00128
00129
00130
00131 double pgws (double t);
00132
00133 double permeabilitavodnipary(double w,double t);
00134
00135 double water_density ();
00136
00137 double derivative_saturation_water_vapour_pressure_temperature(double t);
00138
00139 double latent_heat_of_evaporation_of_water(double t);
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155 void inverze_sorption_isotherm_data(double w, double &fi, double &dfi);
00156 void sisotherm(int kod, double w,double &fiw, double &dfdw);
00157 double linear_data(int kod, double w,double cf, double cc,double t);
00158 double diffcoefiont(int kod, double w,double cf, double cc,double t);
00159 double mw, ma, gasr;
00160 void values_correction (vector & nv,long ipp);
00161 void Cf_check(double cf, double w, long ipp);
00162
00163
00164 void salt_diffusivity_values (int kod, long ipp, double cf, double xpv,double ineq1, double &diff);
00165
00166
00167 void water_content_relhum (long nid,double *in,double *inp,double *ineq, double *out);
00168 double inverse_hystereze_sorption_isotherms (long ipp, double in, double inp, double ineq);
00169 void get_moisture (long nid,double in,double *inp, double &out);
00170
00171
00172 void der_value_hyst (int matchar,int kod, double pv, double & outvalue,double & outvalue2, long ipp);
00173
00174
00175
00176
00177 long cycle_detection (double *r,double *pr, double *ppr);
00178
00179 void hystereze2 (int matchar, double x, double xpv, double ineq1,double & outvalue,double & outvalue2, long ipp, long timeH);
00180 double get_moisture2 ( double rh);
00181 void get_rel_hum2 (double w, double &fi, double &dfdw);
00182 void read_Sourcet(XFILE *in);
00183 double getval_source (double t);
00184
00185 void give_values (long ipp,double *av, double *pv, double *eq);
00186 void aux_values (long ipp,double *in,double *inp,double *ine,double *out);
00187 void save_values (long ipp,double *out);
00188
00189 void give_reqntq(long *antq);
00190
00191
00192 double give_temperature (long ipp);
00193
00194
00195 double give_inittemperature (long ipp);
00196
00197
00198 double give_rel_hum (long ipp);
00199
00200
00201 double give_pore_pressure (long ipp);
00202
00203
00204 double **source;
00205 long pocet_radku;
00206
00207
00208 gfunct *data[20];
00209
00210
00211
00212
00213
00214 isotherm isoth;
00215
00216 dampermeability damper;
00217
00218
00219
00220 gfunct rho;
00221
00222 gfunct por;
00223
00224 gfunct mu;
00225
00226 gfunct kappa;
00227
00228 isotherm sorpiso;
00229
00230 gfunct sm;
00231
00232 gfunct c;
00233
00234 gfunct lambda;
00235
00236 gfunct dcoef;
00237
00238 isotherm bindiso;
00239
00240 gfunct cfmax;
00241
00242 gfunct ws;
00243
00244
00245 double eps;
00246
00247
00248 flagsw daminfl;
00249 };
00250
00251 #endif
00252