00001 #ifndef RICHARDS_H
00002 #define RICHARDS_H
00003
00004 #include "genfile.h"
00005 #include "aliast.h"
00006
00007 class richards
00008 {
00009 public:
00010 richards();
00011 ~richards();
00012
00013 void read(XFILE *in);
00014 void print(FILE *out);
00015
00016
00017 long dim;
00018
00019
00020
00021 double kk_value (double h);
00022
00023 double dkkdh_value (double h);
00024
00025 double ddkkddh_value (double h);
00026
00027 double c_value (double h);
00028
00029 double dcdh_value (double h);
00030
00031 double theta_val (double h);
00032
00033 vector darcian_flux(long ipp);
00034
00035 double taylor_error(long ipp) ;
00036
00037 void matcond (matrix &d,long ri,long ci,long ipp);
00038 void matcap (double &c,long ri,long ci,long ipp);
00039
00040 void matcond1d (matrix &d,long ri,long ci,long ipp);
00041 void matcond2d (matrix &d,long ri,long ci,long ipp);
00042 void matcond3d (matrix &d,long ri,long ci,long ipp);
00043
00044 void matcond2 (matrix &d,long ri,long ci,long ipp);
00045 void matcond1d_2 (matrix &d,long ri,long ci,long ipp);
00046 void matcond2d_2 (matrix &d,long ri,long ci,long ipp);
00047 void matcond3d_2 (matrix &d,long ri,long ci,long ipp);
00048
00049 void give_dof_names(namevart *dofname, long ntm);
00050
00051
00052 private:
00053
00054 double alpha;
00055 double n;
00056 double m;
00057
00058
00059
00060 double thetar;
00061
00062 double storage;
00063
00064 public:
00065
00066 double kksxx,kksxy,kksxz,kksyy,kksyz,kkszz;
00067
00068 double thetas;
00069 };
00070
00071 #endif