From 42cdd427dfec72fe4389f799e2880013687d502d Mon Sep 17 00:00:00 2001 From: Weiye Wang Date: Tue, 25 Jul 2023 13:41:57 -0700 Subject: [PATCH] liquid propert of C3/C7 implemented --- DropletCombustionTest7 | Bin 0 -> 273168 bytes Makefile | 2 +- UserData.cpp | 48 +++++++-- UserData.h | 20 +++- macros.h | 3 + main.cpp | 53 +++++++++- parse.cpp | 59 +++++++++++ parse.h | 5 + parse.hpp | 1 - readme.md | 2 + residue.cpp | 224 ++++++++++++++++++++++++++++++++++------- residue.h | 6 ++ 12 files changed, 375 insertions(+), 48 deletions(-) create mode 100755 DropletCombustionTest7 diff --git a/DropletCombustionTest7 b/DropletCombustionTest7 new file mode 100755 index 0000000000000000000000000000000000000000..8534194af150f434773fb9688fb2be6ff5183aa3 GIT binary patch literal 273168 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 aWn1Ynv+!aS|D(input, "dropletComposition", MAXBUFLEN, data->dropSpec); - if(ier==-1){ - printf("Enter composition of droplet!\n"); - return(NULL); - } + //ier=parseNumber(input, "dropletComposition", MAXBUFLEN, data->dropSpec); + //if(ier==-1){ + // printf("Enter composition of droplet!\n"); + // return(NULL); + //} + ier=parseDrop(input,"dropletComposition",data->dropSpec,data->dropMole,MAXBUFLEN); + ier=parseDrop(input,"dropletDensity",data->dropSpec,data->dropDens,MAXBUFLEN); - ier=parseNumber (input, "nThreads" , MAXBUFLEN, &data->nThreads); + + ier=parseNumber (input, "nThreads", MAXBUFLEN, &data->nThreads); if(data->nThreads<0 ){ printf("nThreads must be greater than 0!\n"); return(NULL); } + - data->nr=0; + ier=parseNumber(input, "PCAD", MAXBUFLEN, &data->PCAD); + ier=parseNumber(input,"RGTC", MAXBUFLEN, &data->RGTC); + ier=parseNumber(input,"JJRG", MAXBUFLEN, &data->JJRG); + ier=parseNumber(input,"deltaT", MAXBUFLEN, &data->deltaT); + + data->nr=0; //data->np=data->nr+1; data->nt=data->nr+1; data->ny=data->nt+1; @@ -361,9 +370,28 @@ UserData allocateUserData(FILE *input){ data->nvar=data->nsp+4; //assign no: of variables (R,T,P,Mdot,nsp species) + + double MW[2]; + for(int i=0;i<=1;i++){ + int speciesIndex = data->gas->speciesIndex(data->dropSpec[i]); + double weight = data->gas->molecularWeight(speciesIndex); + MW[i]= weight; + } + + double massSum = 0.0; + for(int i=0;i<=1;i++){ + massSum = massSum + data->dropMole[i] * MW[i]; + } + data->dropRho = 0.0; + for(int i=0;i<=1;i++){ + data->dropMassFrac[i] = data->dropMole[i]*MW[i]/massSum; + data->dropRho = data->dropRho + data->dropMassFrac[i]*data->dropDens[i]; + } + printf("Density of droplet is: %.3f [kg/m^3]\n",data->dropRho); //Mass of droplet //data->massDrop=1.0/3.0*pow(data->Rd,3)*997.0; //TODO: The density of the droplet should be a user input - data->massDrop=1.0/3.0*pow(data->Rd,3)*684.00; //TODO: The density of the droplet(n-heptane) should be a user input + //data->massDrop=1.0/3.0*pow(data->Rd,3)*684.00; //TODO: The density of the droplet(n-heptane) should be a user input + data->massDrop=1.0/3.0*pow(data->Rd,3)*data->dropRho; if(!data->adaptiveGrid){ data->uniformGrid = new double [data->npts]; @@ -454,5 +482,9 @@ void setSaneDefaults(UserData data){ data->flameTime[0]=0.0e0; data->flameTime[1]=0.0e0; data->nTimeSteps=0; + data->PCAD=0.75; + data->RGTC=1.0; + data->JJRG=0; + data->deltaT=200.0; } diff --git a/UserData.h b/UserData.h index da595f3..00379d6 100644 --- a/UserData.h +++ b/UserData.h @@ -5,6 +5,7 @@ #endif #include "gridRoutines.h" +#include #ifndef USER_DEF #define USER_DEF @@ -16,7 +17,15 @@ typedef struct UserDataTag{ * species.*/ Cantera::Transport* trmix; /* Droplet species composition */ - char dropSpec[MAXBUFLEN]; + //char dropSpec[MAXBUFLEN]; + char dropSpec[2][10]; + /* Droplet species mole fractions */ + double dropMole[2]; + /* Droplet species density at given initialTemperature*/ + double dropDens[2]; + /* Droplet species mass fractions*/ + double dropMassFrac[2]; + double dropRho; /*Length of the domain (in meters):*/ double domainLength; /*Initial Droplet Radius (in meters)*/ @@ -54,7 +63,8 @@ typedef struct UserDataTag{ size_t k_OH; size_t k_HO2; /*Species index of droplet composition*/ - size_t k_drop; + /*Index starts with 1 instead of 0*/ + size_t k_drop[2]; /*User-defined mass flux (kg/m^2/s):*/ double mdot; /*Flag to solve isobaric/isochoric problem;*/ @@ -193,6 +203,12 @@ typedef struct UserDataTag{ //double* MW; FILE* timescaleOutput; + /*Following parameters are used for REGRID function*/ + double PCAD; + double RGTC; + int JJRG; + double deltaT; + } *UserData; UserData allocateUserData(FILE *input); diff --git a/macros.h b/macros.h index 3c827b8..bcfbc8c 100644 --- a/macros.h +++ b/macros.h @@ -15,6 +15,9 @@ * macros here. Also, we define macros to ease referencing various variables in * the sundials nvector. */ +#define WORK(i) WORK[i-1] +#define XNEW(i) XNEW[i-1] + #define psi(i) psidata[i-1] #define T(i) ydata[((i-1)*data->nvar)+data->nt] diff --git a/main.cpp b/main.cpp index d97460a..820597b 100644 --- a/main.cpp +++ b/main.cpp @@ -213,6 +213,7 @@ int main(){ double dxRatio=dx/dxMin; int move=0; int kcur=0; + int RGCOUNT=0; if(data->adaptiveGrid){ dxMin=data->grid->leastMove; xOld=maxCurvPosition(ydata, data->nt, data->nvar, @@ -229,8 +230,6 @@ int main(){ /*Floor small value to zero*/ floorSmallValue(data, &y); - /*reset the tolerance after ignition*/ - resetTolerance(data,&y,&atolv); if(data->quasiSteady){ ier = IDASolve(mem, finalTime, &tNow, y, ydot, IDA_ONE_STEP); @@ -338,6 +337,56 @@ int main(){ } } + + /*reset the tolerance after ignition*/ + //resetTolerance(data,&y,&atolv); + + /*regrid and update the solution based on R,re-initialize the problem*/ + /*For the time being,we only allow TORC to REGRID once for each run*/ + + if(data->JJRG ==1 && (maxT >= data->initialTemperature+data->deltaT)){ + if(RGCOUNT<1){ + RGCOUNT = RGCOUNT +1; + REGRID(ydata,ydotdata,data); + initializePsiGrid(ydata,data->uniformGrid,data); + printf("REGRID Complete!Restarting Problem at %15.6e s\n",tNow); + ier = IDAReInit(mem,tNow,y,ydot); + + if(check_flag(&ier,"IDAReInit",1)){ + freeAtLast(mem,&y,&ydot,&res,&id,&atolv,&constraints,data); + return(-1); + } + + ier= IDASetInitStep(mem,1e-01*dt); + //ier= IDASetInitStep(mem,0.0); + printf("Reinitialized!Calculating Initial Conditions:\n"); + printf("Cross your fingers...\n"); + ier = IDACalcIC(mem, IDA_YA_YDP_INIT, tNow+1e-01*dt); + if(check_flag(&ier, "IDACalcIC", 1)){ + ier = IDACalcIC(mem, IDA_YA_YDP_INIT, tNow+1e+01*dt); + } + //Every once in a while, for reasons + //that befuddle this mathematically + //lesser author, IDACalcIC fails. Here, + //I desperately try to make it converge + //again by sampling increasingly larger + //time-steps: + for (int i = 0; i < 10; i++) { + ier = IDACalcIC(mem, IDA_YA_YDP_INIT, tNow+(1e-01+pow(10,i)*dt)); + if(ier==0){ + break; + } + } + //Failure :( Back to the drawing board: + if(check_flag(&ier, "IDACalcIC", 1)){ + freeAtLast(mem,&y,&ydot,&res,&id,&atolv,&constraints,data); + return(-1); + } + printf("Initial (Consistent) Conditions Calculated!\n"); + printf("------------------------------------------\n\n"); + + } + } /*Floor small value to zero*/ floorSmallValue(data, &y); diff --git a/parse.cpp b/parse.cpp index f872ca5..d2e6e9f 100644 --- a/parse.cpp +++ b/parse.cpp @@ -18,3 +18,62 @@ void getFromString (const char* buf, char* n){ sscanf(buf,"%s",n); printf("%s\n",n); } + +/*Extract droplet species and mole fractions*/ +int parseDrop(FILE* input, const char* keyword,char dropSpec[][10],double dropMole[],const size_t bufLen){ + char buf[bufLen]; + char buf1[bufLen]; + char comment[1]; + char *ret; + while (fgets(buf,bufLen, input)!=NULL){ + comment[0]=buf[0]; + if(strncmp(comment,"#",1)==0){ + } + else{ + strcpy(buf1,buf); + ret=strtok(buf,"="); + //DEBUG + //printf("Current KEYWORD in input: %20s \n",ret); + if(strcmp(ret,keyword)==0){ + char* modifiedFuel = NULL; + char* equalSign = strstr(buf1,"="); + if(equalSign!= NULL){ + modifiedFuel = new char [strlen(equalSign)+1]; + strcpy(modifiedFuel,equalSign+1); + //DEBUG + //printf("modifiedFuel:%20s \n",modifiedFuel); + char* token = strtok(modifiedFuel,","); + int index = 0 ; + char* list[2]; + while(token!= NULL){ + //DEBUG + //printf("TOKEN :%20s \n",token); + list[index] = token; + token = strtok(NULL,","); + index++; + } + //for (int i=0;i<2;i++){ + // printf("%20s",list[i]); + //} + for(int i=0;i<2;i++){ + char* name= strtok(list[i],":"); + char* value = strtok(NULL,":"); + //DEBUG + // printf("Name:%10s,Value:%10s \n",name,value); + strcpy(dropSpec[i],name); + dropMole[i]=std::stod(value); + // printf("In the dropArray,Name:%10s,Value:%.3f\n",dropSpec[i],dropMole[i]); + } + delete[] modifiedFuel; + } + printf("%10s:%10s:%.3f,%10s:%.3f\n",keyword,dropSpec[0],dropMole[0],dropSpec[1],dropMole[1]); + //printf("IF statement is execuated. \n"); + rewind(input); + //delete[] modifiedFuel; + return(0); + } + } + } + rewind(input); + return(-1); +} diff --git a/parse.h b/parse.h index 45f3a2c..894bd12 100644 --- a/parse.h +++ b/parse.h @@ -3,6 +3,10 @@ #include //for strings #include //for printf,scanf #include //for atoi, atof +#include +#include +#include +#include #endif #ifndef PARSE_DEF @@ -23,6 +27,7 @@ template int parseArray(FILE* input, const char* keyword, const size_t bufLen, const size_t arrLen, T y[]); +int parseDrop(FILE* input, const char* keyword,char dropSpec[][10],double dropMole[],const size_t bufLen); #include "parse.hpp" diff --git a/parse.hpp b/parse.hpp index 634db96..6c10a9a 100644 --- a/parse.hpp +++ b/parse.hpp @@ -73,4 +73,3 @@ int parseArray(FILE* input, const char* keyword, const size_t bufLen, rewind(input); return(-1); } - diff --git a/readme.md b/readme.md index d4f408f..8f798f4 100644 --- a/readme.md +++ b/readme.md @@ -11,4 +11,6 @@ DropletCombustionTest2: Multiple the l function by 100.0 and remove print timeSc DropletCombustionTest3: Multiple the l function by 10.0 and print the maxTemp and add criteria for regrid DropletCombustionTest4: dxRatio to be 1.0e-2 and delta_T to be 150 [K] DropletCombustionTest5: dxRatio to be 1.0 and print x and xOld temperature, modified the fillGrid function; +DropletCombustionTest7: JJRG has been implemented; + diff --git a/residue.cpp b/residue.cpp index f4c4944..bdc654b 100644 --- a/residue.cpp +++ b/residue.cpp @@ -9,6 +9,119 @@ #include #include "timing.hpp" +void REGRID(double* ydata,double* ydotdata,UserData data){ + size_t nPts = data->npts; + size_t nvar = data->nvar; + double WORK[nPts],XNEW[nPts],XOLD[nPts]; + double P,R,R0,R1,R2,TV1,TV2,XLEN,B1,B2; + double DX,DDX; + double DETA,ETAJ,DEL; + size_t ISTART; + P = data->PCAD; + R = data->RGTC; + R0 =1.0 - P; + R1 =P*R/(R+1.0); + R2 =P - R1 ; + TV1 = 0.0; + TV2 = 0.0; + + for(size_t i=2;i<=nPts;i++){ + TV1 = TV1 + fabs(T(i)-T(i-1)); + } + + for(size_t i=2;i<=nPts-1;i++){ + TV2 = TV2 + fabs( (T(i+1)-T(i))/(R(i+1)-R(i)) - (T(i)-T(i-1))/(R(i)-R(i-1)) ); + } + + XLEN = R(nPts) - R(1); + B1 = R1* XLEN/ ( (1.0-P)*TV1); + B2 = R2* XLEN/ ( (1.0-P)*TV2); + + //Compute partial sum of weight function + WORK(1) =0.0; + DX = 0.0; + for(size_t i=2;i<=nPts-1;i++){ + DX = R(i) - R(i-1) ; + WORK(i) = DX + B1*fabs(T(i)-T(i-1)) + WORK(i-1)+B2*fabs( (T(i+1)-T(i))/(R(i+1)-R(i)) - (T(i)-T(i-1))/(R(i)-R(i-1)) ); + } + + DDX = R(nPts) - R(nPts-1); + WORK(nPts) = WORK(nPts-1) +DDX ; + + for(size_t i=2;i<=nPts;i++){ + WORK(i) = WORK(i)/WORK(nPts); + } + + XNEW(1)=R(1); + XNEW(nPts)=R(nPts); + ISTART =2; + //double DETA; + DETA = 1.0/(nPts-1) ; + + //Fill new grid XNEW[nPts],duplicate from PREMIX REGRID SUBROUTINE + for(size_t j=2;j<=nPts-1;j++){ + ETAJ= (j-1)*DETA; + + for(size_t i=ISTART;i<=nPts;i++){ + if(ETAJ <= WORK(i)){ + DEL = (ETAJ-WORK(i-1))/(WORK(i)-WORK(i-1)) ; + XNEW(j)=R(i-1)+(R(i)-R(i-1))*DEL; + break; + }else{ + ISTART =i; + } + + } + } + + //Interpolate solution based on XNEW[]&XOLD[] + for(size_t i=1;i<=nPts;i++){ + XOLD[i-1]=R(i); + } + + INTERPO(ydata,ydotdata,nvar,nPts,XNEW,XOLD); + +} + + +void INTERPO(double* y,double* ydot,const size_t nvar,size_t nPts,const double XNEW[], const double XOLD[]){ + double ytemp[nPts],ydottemp[nPts] ; + + gsl_interp_accel* acc; + gsl_spline* spline; + acc = gsl_interp_accel_alloc(); + spline = gsl_spline_alloc(gsl_interp_steffen,nPts); + + gsl_interp_accel* accdot; + gsl_spline* splinedot; + accdot = gsl_interp_accel_alloc(); + splinedot = gsl_spline_alloc(gsl_interp_steffen,nPts); + + for(size_t j=0;jk_bath=BathGasIndex(data); data->k_oxidizer=oxidizerIndex(data); data->k_OH=OHIndex(data); data->k_HO2=HO2Index(data); - data->k_drop=specIndex(data,data->dropSpec); + //use char* pointer to get the address + for(int i=0;i<2;i++){ + specPtr[i] = data->dropSpec[i]; + } + data->k_drop[0]=specIndex(data,specPtr[0]); + data->k_drop[1]=specIndex(data,specPtr[1]); + printf("Oxidizer index: %lu\n",data->k_oxidizer); printf("Bath gas index:%lu\n",data->k_bath); - printf("Droplet species index:%lu\n",data->k_drop); + printf("Droplet species index:%lu,%lu\n",data->k_drop[0],data->k_drop[1]); for (size_t i = 1; i <=data->npts; i++) { /*Algebraic variables: indicated by ZERO.*/ Rid(i)=ZERO; @@ -361,7 +482,8 @@ int setAlgebraicVariables(N_Vector* id, UserData data){ } Mdotid(1)=ZERO; Rid(1)=ONE; - Yid(1,data->k_drop)=ZERO; + Yid(1,data->k_drop[0])=ZERO; + Yid(1,data->k_drop[1])=ZERO; Tid(data->npts)=ZERO; if(data->constantPressure){ Pid(data->npts)=ONE; @@ -569,8 +691,9 @@ int setInitialCondition(N_Vector* y, //Mass of droplet //massDrop=1.0/3.0*Rd*Rd*Rd*997.0; //TODO: The density of the droplet should be a user input - massDrop=1.0/3.0*Rd*Rd*Rd*684.0; //TODO:The density of the droplet(n-heptane) should be a user input - if(data->adaptiveGrid){ + //massDrop=1.0/3.0*Rd*Rd*Rd*684.0; //TODO:The density of the droplet(n-heptane) should be a user input + massDrop = 1.0/3.0*Rd*Rd*Rd*data->dropRho; + if(data->adaptiveGrid){ psidata = data->grid->xOld; } else{ @@ -903,7 +1026,7 @@ int residue(double t, N_Vector y, N_Vector ydot, N_Vector res, void *user_data){ size_t npts=data->npts; size_t nsp=data->nsp; size_t k_bath = data->k_bath; - size_t k_drop = data->k_drop; + size_t k_drop[2] = {data->k_drop[0],data->k_drop[1]}; ydata = N_VGetArrayPointer_OpenMP(y); ydotdata= N_VGetArrayPointer_OpenMP(ydot); @@ -952,7 +1075,7 @@ int residue(double t, N_Vector y, N_Vector ydot, N_Vector res, void *user_data){ double rhomhalf, rhom, lambdamhalf, YVmhalf[nsp], rho, rhophalf, lambdaphalf, YVphalf[nsp], - Cpb, Cvb, Cp[nsp], Cpl, dHvl, rhol, wdot[nsp], enthalpy[nsp], energy[nsp], + Cpb, Cvb, Cp[nsp], Cpl[2], dHvl[2], rhol, wdot[nsp], enthalpy[nsp], energy[nsp], tranTerm, diffTerm, srcTerm, advTerm, area,areamhalf,areaphalf,aream,areamhalfsq,areaphalfsq; @@ -982,24 +1105,46 @@ int residue(double t, N_Vector y, N_Vector ydot, N_Vector res, void *user_data){ //Cpl= 5.67508633e-07*pow(T(1),4) - 7.78060597e-04*pow(T(1),3) + 4.08310544e-01*pow(T(1),2) //J/kg/K for liquid water // - 9.62429538e+01*T(1) + 1.27131046e+04; - /*Update specific heat:Cpl for liquid n-heptane*/ + /*Update specific heat:Cpl for liquid proprane&n-heptane&dodecane*/ /*Based on the existiong data,a linear expression is used*/ // Cpl= 12.10476*T(1) - 746.60143; // Unit:J/(kg*K), Need to be improved later - Cpl = 2242.871642; //Unit:J/(kg*K),range:25~520K,Ginnings&Furukawa,NIST + Cpl[0] = 2.423*T(1)+1661.074; //Unit:J/(kg*K),range:1atm,propane + Cpl[1] = 3.336*T(1)+1289.5; //Unit:J/(kg*K),range:1atm,n-Heptane + //Cpl[1] = 3.815*T(1)+1081.8; //Unit:J/(kg*K),range:1atm,n-Dodecane + double Cp_l = 0.0; + for(size_t i=0;i<=1;i++){ + Cp_l=Cp_l+Cpl[i]*data->dropMassFrac[i]; + } //dHvl=2.260e6; //J/kg heat of vaporization of water //double Tr = T(1)/647.1; //Reduced Temperature: Droplet Temperature divided by critical temperature of water //dHvl= 5.2053e07*pow(1-Tr,0.3199 - 0.212*Tr + 0.25795*Tr*Tr)/18.01; //J/kg latent heat of vaporization of water - - double Tr = T(1)/540.2; //Reduced Temperature:Droplet Temperature divided by critical temperature of liquid n-heptane, Source:NIST - dHvl = 5.366e5*exp(-0.2831*Tr) * pow((1-Tr),0.2831); //Unit:J/kg, latent heat of vaporization of liquid n-heptane, Source: NIST + double Tr1 = T(1)/369.8; //Reduced Temperature; + dHvl[0] = 6.32716e5*exp(-0.0208*Tr1)*pow((1-Tr1),0.3766); //Unit:J/kg,Latent Heat of Vaporizaiton of Liquid n-propane,NIST + + double Tr2 = T(1)/540.2; //Reduced Temperature:Droplet Temperature divided by critical temperature of liquid n-heptane, Source:NIST + dHvl[1] = 5.366e5*exp(-0.2831*Tr2) * pow((1-Tr2),0.2831); //Unit:J/kg, latent heat of vaporization of liquid n-heptane, Source: NIST + + double dHv_l = 0.0; + for(size_t i=0;i<=1;i++){ + dHv_l=dHv_l+dHvl[i]*data->dropMassFrac[i]; + } + /*Following section is related to the property of water*/ //rhol = 997.0; //massDrop=1.0/3.0*R(1)*R(1)*R(1)*997.0; //TODO: The density of the droplet should be a user input - /*Following section is related to the property of liquid n-heptane (mainly density rho)*/ - rhol = 684.0; //Unit:kg/m^3 + /*Following section is related to the property of liquid n-heptane and n-dodecane (mainly density rho)*/ + /*Density of these two species should be temperature dependent*/ + data->dropDens[0] = -1.046*T(1)+823.794; //Unit:kg/m^3,density of propane @1atm + data->dropDens[1] = -0.858*T(1)+933.854; //Unit:kg/m^3,density of n-Heptane @1atm + //data->dropDens[1] = -0.782*T(1)+979.643; //Unit:kg/m^3,density of n-Dodecane @1atm + //rhol = data->dropRho; //Unit:kg/m^3 + rhol = 0.0; + for(size_t i=0;i<=1;i++){ + rhol = rhol + data->dropMassFrac[i]*data->dropDens[i]; + } massDrop = 1.0/3.0*R(1)*R(1)*R(1)*rhol; //Unit:kg, this is the mass of liquid droplet aream= calc_area(R(1),&m); @@ -1038,18 +1183,24 @@ int residue(double t, N_Vector y, N_Vector ydot, N_Vector res, void *user_data){ /*Following using the Antoine Parameters to calculate the pressure of volatile component(n-heptane)*/ //Antoine parameter from NIST website - double p_i=0.0 ; - p_i = 1.0e5*pow(10,4.02832-(1268.636/(T(1)-56.199))) ; //unit:Pa,FOR N-HEPTANE + double p_i[2]={0.0,0.0} ; + + p_i[0] = 1.0e5*pow(10,4.53678-(1149.36/(T(1)+24.906)))*data->dropMassFrac[0] ; //unit:Pa,For N-PROPANE + p_i[1] = 1.0e5*pow(10,4.02832-(1268.636/(T(1)-56.199)))*data->dropMassFrac[1] ; //unit:Pa,FOR N-HEPTANE //p_i = 1.0e3*pow(2.71828,16.7-(4060.0/(T(1)-37.0))); //Unit:Pa,FOR WATER - Yres(1,k_drop)=Y(1,k_drop) - p_i * data->gas->molecularWeight(k_drop-1) - / P(1) / data->gas->meanMolecularWeight(); - - sum=sum+Y(1,k_drop); + //Yres(1,k_drop)=Y(1,k_drop) - p_i * data->gas->molecularWeight(k_drop-1) + // / P(1) / data->gas->meanMolecularWeight(); + for(size_t i=0;i<=1;i++){ + Yres(1,k_drop[i])=Y(1,k_drop[i])-p_i[i]*data->gas->molecularWeight(k_drop[i]-1)/(P(1)*data->gas->meanMolecularWeight()); + } - Mdotres(1)=Mdot(1) - (YVmhalf(k_drop)*areamhalf) / (1-Y(1,k_drop)); //Evaporating mass + + sum=sum+Y(1,k_drop[0])+Y(1,k_drop[1]); + //Mdotres(1)=Mdot(1) - (YVmhalf(k_drop)*areamhalf) / (1-Y(1,k_drop)); //Evaporating mass + Mdotres(1)= Mdot(1) - ((YVmhalf(k_drop[0])+YVmhalf(k_drop[1])) *areamhalf) / (1-Y(1,k_drop[0])-Y(1,k_drop[1]) ); //Evaporating mass for (k = 1; k <=nsp; k++) { - if(k!=k_bath && k!=k_drop){ + if(k!=k_bath && k!=k_drop[0] && k!=k_drop[1]){ //TODO: May need to include chemical source term Yres(1,k)=Y(1,k)*Mdot(1) + YVmhalf(k)*areamhalf; //Yres(1,k)=YVmhalf(k)*areamhalf; @@ -1076,14 +1227,19 @@ int residue(double t, N_Vector y, N_Vector ydot, N_Vector res, void *user_data){ if(data->dirichletInner){ //Tres(1)=Tdot(1); //Tres(1)=T(1)-data->innerTemperature; - Tres(1)=lambdamhalf*rhomhalf*areamhalfsq*(T(2)-T(1))/((psi(2)-psi(1))*mass)/dHvl - YVmhalf(k_drop)*areamhalf/(1-Y(1,k_drop)); + /*Following code should be revised in the future*/ + //Tres(1)=lambdamhalf*rhomhalf*areamhalfsq*(T(2)-T(1))/((psi(2)-psi(1))*mass)/dHv_l - YVmhalf(k_drop)*areamhalf/(1-Y(1,k_drop)); }else{ //Tres(1)=Tdot(1) - // (rhomhalf*areamhalfsq*lambdamhalf*(T(2)-T(1))/((psi(2)-psi(1))*mass) - Mdot(1)*dHvl) // / (massDrop * Cpl); + + //Tres(1)=Tdot(1) - + // (areamhalf*lambdamhalf*(T(2)-T(1))/(R(2)-R(1)) - Mdot(1)*dHvl) + // / (massDrop * Cpl); Tres(1)=Tdot(1) - - (areamhalf*lambdamhalf*(T(2)-T(1))/(R(2)-R(1)) - Mdot(1)*dHvl) - / (massDrop * Cpl); + (areamhalf*lambdamhalf*(T(2)-T(1))/(R(2)-R(1)) - Mdot(1)*dHv_l) + / (massDrop * Cp_l); @@ -1720,25 +1876,25 @@ void resetTolerance(UserData data, N_Vector* y,N_Vector* atolv) ydata = N_VGetArrayPointer_OpenMP(*y); atolvdata = N_VGetArrayPointer_OpenMP(*atolv); double relTol,radTol,tempTol,presTol,massFracTol,bathGasTol,mdotTol; - double maxT=0.00, ignT=1800; + double maxT=0.00, deltaT=400.0; relTol = 1.0e-03 ; radTol = 1.0e-05 ; - tempTol = 1.0e-01 ; - presTol = 1.0e00 ; - massFracTol = 1.0e-08; - bathGasTol = 1.0e-04 ; - mdotTol = 1.0e-09 ; + tempTol = 1.0e-03 ; + presTol = 1.0e-3 ; + massFracTol = 1.0e-06; + bathGasTol = 1.0e-05 ; + mdotTol = 1.0e-10 ; - /*Get the maximum Tempture*/ + /*Get the maximum Temperature*/ for (size_t i =1;i <= data->npts;i++){ if(T(i) > maxT){ maxT = T(i); } } - /*reset the tolerance when maxT > ignT*/ - if(maxT >= ignT){ + /*reset the tolerance when maxT > initialTemperature +deltaT*/ + if(maxT >= (data->initialTemperature + deltaT)){ data->relativeTolerance = relTol; for(size_t i =1; i<=data->npts; i++){ diff --git a/residue.h b/residue.h index 128733c..349766c 100644 --- a/residue.h +++ b/residue.h @@ -7,6 +7,8 @@ #ifndef PRINT_DEF #define PRINT_DEF #include //for strings +#include +#include #include //for printf,scanf #include //for atoi, atof #endif @@ -19,6 +21,10 @@ #include "UserData.h" +void REGRID(double* ydata,double* ydotdata,UserData data); + +void INTERPO(double* y,double* ydot,const size_t nvar,size_t nPts,const double XNEW[], const double XOLD[]); + double maxTemperaturePosition(const double* y,const size_t nt,const size_t nvar,const double* x ,size_t nPts); double maxTemperature(const double* y,const size_t nt, const size_t nvar, size_t nPts);