00001 #include "sorpisohansen.h"
00002
00003 sorpisohansen::sorpisohansen (void)
00004 {
00005
00006 uh=0.0;
00007
00008 n=0.0;
00009
00010 a=0.0;;
00011 }
00012 sorpisohansen::~sorpisohansen (void)
00013 {
00014 }
00015
00016
00017
00018
00019
00020
00021
00022
00023 void sorpisohansen::read (XFILE *in)
00024 {
00025 xfscanf(in,"%le %le %le",&uh,&a,&n);
00026 }
00027
00028
00029
00030
00031
00032
00033
00034
00035 void sorpisohansen::print (FILE *out)
00036 {
00037 fprintf(out, "\n %le %le %le",uh,a,n);
00038
00039 }
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049 double sorpisohansen::derivative_relhum (double rh)
00050 {
00051 if (rh > 1.0)
00052 rh = 1.0;
00053 if (rh < 0.0)
00054 rh = 0.0;
00055
00056 return (1000 * (uh/(a*rh*n))*pow((1-(log(rh))/a),(-1-(1/n))));
00057 }
00058
00059
00060
00061
00062
00063
00064
00065
00066 double sorpisohansen::hansen_sorption_isotherm (double rh)
00067 {
00068 return (uh*pow((1-(log(rh))/a),(-1/n)));
00069 }
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079 double sorpisohansen::hansen_inverse_sorption_isotherm (double w)
00080 {
00081
00082
00083
00084
00085 return (exp(a*(1.0-pow((uh/w),n))));
00086 }