00001 #ifndef GLASGOWMATC_H
00002 #define GLASGOWMATC_H
00003
00004 #include <stdio.h>
00005 #include "genfile.h"
00006
00007 class glasgowmatc
00008 {
00009 public:
00010 glasgowmatc (void);
00011 ~glasgowmatc (void);
00012
00013
00014 void matcond_u (matrix &d,long ri,long ci,long ipp);
00015 void matcap_u (matrix &d,long ri,long ci,long ipp);
00016 void matcond1d_u (matrix &d,long ri,long ci,long ipp);
00017 void matcond2d_u (matrix &d,long ri,long ci,long ipp);
00018 void matcond3d_u (matrix &d,long ri,long ci,long ipp);
00019 void matcap1d_u (matrix &d,long ri,long ci,long ipp);
00020 void matcap2d_u (matrix &d,long ri,long ci,long ipp);
00021 void matcap3d_u (matrix &d,long ri,long ci,long ipp);
00022
00023 void matcond_l (matrix &d,long ri,long ci,long ipp);
00024 void matcap_l (matrix &d,long ri,long ci,long ipp);
00025 void matcond1d_l (matrix &d,long ri,long ci,long ipp);
00026 void matcond2d_l (matrix &d,long ri,long ci,long ipp);
00027 void matcond3d_l (matrix &d,long ri,long ci,long ipp);
00028 void matcap1d_l (matrix &d,long ri,long ci,long ipp);
00029 void matcap2d_l (matrix &d,long ri,long ci,long ipp);
00030 void matcap3d_l (matrix &d,long ri,long ci,long ipp);
00031
00032 void rhs_u1 (matrix &d,long ri,long ci,long ipp);
00033 void rhs1d_u1 (matrix &d,long ri,long ci,long ipp);
00034 void rhs2d_u1 (matrix &d,long ri,long ci,long ipp);
00035 void rhs3d_u1 (matrix &d,long ri,long ci,long ipp);
00036
00037 void read (XFILE *in);
00038
00039 double ktt (double t,double pg,double rhov);
00040 double ktp (double t,double pg,double rhov);
00041 double ktv (double t,double pg,double rhov);
00042
00043 double kat (double t,double pg,double rhov);
00044 double kap (double t,double pg,double rhov);
00045 double kav (double t,double pg,double rhov);
00046
00047 double kmt (double t,double pg,double rhov);
00048 double kmp (double t,double pg,double rhov);
00049 double kmv (double t,double pg,double rhov);
00050
00051 double ctt (double t,double pg,double rhov);
00052 double ctp ();
00053 double ctv (double t,double pg,double rhov);
00054
00055 double cat (double t,double pg,double rhov);
00056 double cap (double t,double pg,double rhov);
00057 double cav (double t,double pg,double rhov);
00058
00059 double cmt (double t,double pg,double rhov);
00060 double cmp ();
00061 double cmv (double t,double pg,double rhov);
00062
00063
00064 double transmission_transcoeff(double trc,long ri,long ci,long nn,long bc,long ipp);
00065 double transmission_nodval(double nodval,double trc2,long ri,long ci,long nn,long bc,long ipp);
00066 double transmission_flux(double nodval,double trc2,long ri,long ci,long nn,long bc,long ipp);
00067
00068 double get_transmission_transcoeff_mv(double t,double pg,double rhov,long bc,long ipp);
00069 double get_transmission_nodval_mv(double bv,double t,double pg,double rhov,long bc,long ipp);
00070 double get_transmission_flux_mv(double bv,double t,double pg,double rhov,long bc,long ipp);
00071
00072 double get_transmission_transcoeff_tt(double t,double pg,double rhov,long bc,long ipp);
00073 double get_transmission_nodval_tt(double bv,double t,double pg,double rhov,long bc,long ipp);
00074 double get_transmission_flux_tt(double bv,double t,double pg,double rhov,long bc,long ipp);
00075
00076 double get_transmission_transcoeff_mt(double t,double pg,double rhov,long bc,long ipp);
00077 double get_transmission_nodval_mt(double bv,double t,double pg,double rhov,long bc,long ipp);
00078 double get_transmission_flux_mt(double bv,double t,double pg,double rhov,long bc,long ipp);
00079
00080 double get_othervalue(long compother,long ipp, double *r);
00081 void print_othervalue_name(FILE *out,long compother);
00082
00083 double f_h (double rhov, double t);
00084
00085
00086 double kuu (double t,double pg,double rhov);
00087 double kut (double t,double pg,double rhov);
00088 double kut2 (double t,double pg,double rhov);
00089 double kup (double t,double pg,double rhov);
00090 double kuv (double t,double pg,double rhov);
00091 double ktu ();
00092 double kpu ();
00093 double kvu ();
00094
00095 double ctu ();
00096 double cpu ();
00097 double cvu ();
00098 double cut ();
00099 double cup ();
00100 double cuv ();
00101
00102 double fuv1(double t,double pg,double rhov);
00103 double fup1(double t,double pg,double rhov);
00104 double fut1(double t,double pg,double rhov);
00105 double emod ();
00106
00107
00108 double rhoc;
00109 double rhos;
00110 double por0;
00111 double k0;
00112 double rhol0;
00113 double ra;
00114 double rv;
00115 double sssp;
00116 double t0;
00117 double rhov0;
00118 double pginf;
00119 double emmi;
00120 double stef;
00121 double alph;
00122 double hq;
00123 double crhoair;
00124 double tfirestart;
00125
00126 long model;
00127
00128 private:
00129
00130 double f_rhovinf();
00131 double f_tinf (double time);
00132 double f_pv (double rhov, double t);
00133 double f_psat(double t);
00134 double f_dpsatdt (double t);
00135 double f_rhow0 (double t);
00136 double f_rhow (double t);
00137 double f_drhowdt (double t);
00138 double f_por (double t);
00139 double f_dpordt (double t);
00140 double f_fracl0 (double t);
00141 double f_m (double t);
00142 double f_mi (double t);
00143 double f_fracl (double rhov, double t);
00144 double f_dfracldt (double rhov, double t);
00145 double f_dfracldrhov (double rhov, double t);
00146 double f_dmdt (double t);
00147 double f_dmidt (double t);
00148 double f_mcbwrel (double t);
00149 double f_dmcbwreldt (double t);
00150 double f_fracd (double t);
00151 double f_dfracddt(double t);
00152 double f_fracg(double rhov, double t);
00153 double f_s(double rhov, double t);
00154 double f_pl(double rhov, double pg, double t);
00155 double f_pc(double rhov, double t);
00156 double f_dpcdt (double rhov, double t);
00157 double f_dpcdrhov (double rhov, double t);
00158 double f_sln (double rhov, double t);
00159 double f_ppore (double rhov, double pg, double t, double pginf);
00160 double f_sb (double rhov, double t);
00161 double f_pa (double rhov, double pg, double t);
00162 double f_rhoa (double rhov, double pg, double t);
00163 double f_rhog (double rhov, double pg, double t);
00164 double f_davex (double pg, double tinf);
00165 double f_dav (double rhov, double pg, double t);
00166 double f_db(double rhov, double t);
00167 double f_kk (double t);
00168 double f_kg (double rhov, double t);
00169 double f_kl (double rhov, double t);
00170 double f_mul (double t);
00171 double f_muv (double t);
00172 double f_mua (double t);
00173 double f_mug (double rhov, double pg, double t);
00174 double f_cl (double t);
00175 double f_cv (double t);
00176 double f_ca (double t);
00177 double f_cs (double t);
00178 double f_keff (double t);
00179 double f_fracs (double rhov, double t);
00180 double f_crho (double rhov, double pg, double t);
00181 double f_le (double t);
00182 double f_ld ();
00183 double f_hrad(double t, double tinf);
00184 double f_hqr(double t, double tinf);
00185 double f_beta (double pg, double tinf);
00186
00187 double f_alpha(double t);
00188
00189 };
00190
00191 #endif
00192