00001 #ifndef GLASGOWMAT_H
00002 #define GLASGOWMAT_H
00003
00004 #include <stdio.h>
00005 #include "genfile.h"
00006
00007 class glasgowmat
00008 {
00009 public:
00010 glasgowmat (void);
00011 ~glasgowmat (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 ktt (double t,double pg,double rhov);
00024 double ktp (double t,double pg,double rhov);
00025 double ktv (double t,double pg,double rhov);
00026
00027 double kat (double t,double pg,double rhov);
00028 double kap (double t,double pg,double rhov);
00029 double kav (double t,double pg,double rhov);
00030
00031 double kmt (double t,double pg,double rhov);
00032 double kmp (double t,double pg,double rhov);
00033 double kmv (double t,double pg,double rhov);
00034
00035 double ctt (double t,double pg,double rhov);
00036 double ctp ();
00037 double ctv (double t,double pg,double rhov);
00038
00039 double cat (double t,double pg,double rhov);
00040 double cap (double t,double pg,double rhov);
00041 double cav (double t,double pg,double rhov);
00042
00043 double cmt (double t,double pg,double rhov);
00044 double cmp ();
00045 double cmv (double t,double pg,double rhov);
00046
00047
00048 double transmission_transcoeff(double trc,long ri,long ci,long nn,long bc,long ipp);
00049 double transmission_nodval(double nodval,double trc2,long ri,long ci,long nn,long bc,long ipp);
00050 double transmission_flux(double nodval,double trc2,long ri,long ci,long nn,long bc,long ipp);
00051
00052 double get_transmission_transcoeff_mv(double t,double pg,double rhov,long bc,long ipp);
00053 double get_transmission_nodval_mv(double bv,double t,double pg,double rhov,long bc,long ipp);
00054 double get_transmission_flux_mv(double bv,double t,double pg,double rhov,long bc,long ipp);
00055
00056 double get_transmission_transcoeff_tt(double t,double pg,double rhov,long bc,long ipp);
00057 double get_transmission_nodval_tt(double bv,double t,double pg,double rhov,long bc,long ipp);
00058 double get_transmission_flux_tt(double bv,double t,double pg,double rhov,long bc,long ipp);
00059
00060 double get_transmission_transcoeff_mt(double t,double pg,double rhov,long bc,long ipp);
00061 double get_transmission_nodval_mt(double bv,double t,double pg,double rhov,long bc,long ipp);
00062 double get_transmission_flux_mt(double bv,double t,double pg,double rhov,long bc,long ipp);
00063
00064 double get_othervalue(long compother,long ipp, double *r);
00065 void print_othervalue_name(FILE *out,long compother);
00066
00067
00068 void give_dof_names(namevart *dofname, long ntm);
00069
00070 double f_h (double rhov, double t);
00071
00072
00073 double rhoc;
00074 double rhos;
00075 double por0;
00076 double k0;
00077 double rhol0;
00078 double ra;
00079 double rv;
00080 double sssp;
00081 double t0;
00082 double rhov0;
00083 double pginf;
00084 double emmi;
00085 double stef;
00086 double alph;
00087 double hq;
00088 double crhoair;
00089 double tfirestart;
00090
00091 long model;
00092
00093 private:
00094
00095 double f_rhovinf();
00096 double f_tinf (double time);
00097 double f_pv (double rhov, double t);
00098 double f_psat(double t);
00099 double f_dpsatdt (double t);
00100 double f_rhow0 (double t);
00101 double f_rhow (double t);
00102 double f_drhowdt (double t);
00103 double f_por (double t);
00104 double f_dpordt (double t);
00105 double f_fracl0 (double t);
00106 double f_m (double t);
00107 double f_mi (double t);
00108 double f_fracl (double rhov, double t);
00109 double f_dfracldt (double rhov, double t);
00110 double f_dfracldrhov (double rhov, double t);
00111 double f_dmdt (double t);
00112 double f_dmidt (double t);
00113 double f_mcbwrel (double t);
00114 double f_dmcbwreldt (double t);
00115 double f_fracd (double t);
00116 double f_dfracddt(double t);
00117 double f_fracg(double rhov, double t);
00118 double f_s(double rhov, double t);
00119 double f_pl(double rhov, double pg, double t);
00120 double f_pc(double rhov, double t);
00121 double f_dpcdt (double rhov, double t);
00122 double f_dpcdrhov (double rhov, double t);
00123 double f_sln (double rhov, double t);
00124 double f_ppore (double rhov, double pg, double t, double pginf);
00125 double f_sb (double rhov, double t);
00126 double f_pa (double rhov, double pg, double t);
00127 double f_rhoa (double rhov, double pg, double t);
00128 double f_rhog (double rhov, double pg, double t);
00129 double f_davex (double pg, double tinf);
00130 double f_dav (double rhov, double pg, double t);
00131 double f_db(double rhov, double t);
00132 double f_kk (double t);
00133 double f_kg (double rhov, double t);
00134 double f_kl (double rhov, double t);
00135 double f_mul (double t);
00136 double f_muv (double t);
00137 double f_mua (double t);
00138 double f_mug (double rhov, double pg, double t);
00139 double f_cl (double t);
00140 double f_cv (double t);
00141 double f_ca (double t);
00142 double f_cs (double t);
00143 double f_keff (double t);
00144 double f_fracs (double rhov, double t);
00145 double f_crho (double rhov, double pg, double t);
00146 double f_le (double t);
00147 double f_ld ();
00148 double f_hrad(double t, double tinf);
00149 double f_hqr(double t, double tinf);
00150 double f_beta (double pg, double tinf);
00151
00152
00153 };
00154
00155 #endif
00156