From 1bc1a902b9e350ed55d0554722aac6c70a280ebf Mon Sep 17 00:00:00 2001 From: Cintia Goncalves Machado Date: Tue, 31 Aug 2021 13:27:50 +0200 Subject: [PATCH 1/4] add ejt as estimate paramater --- src/captas.c | 4 ++-- src/models/dTwf.c | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/captas.c b/src/captas.c index 3903c00..9e68286 100644 --- a/src/captas.c +++ b/src/captas.c @@ -1,6 +1,6 @@ /* - Computer Aided Pressure Transient Analysis (and Simulation?) – CAPTA(S?) + Computer Aided Pressure Transient Analysis (and Simulation?) � CAPTA(S?) Copyright (C) 2013 Carlos E. Pico This program is free software: you can redistribute it and/or modify @@ -534,6 +534,7 @@ void init_parameters(modelparameters *par) par->parnames[PENETRATION_RATIO] = "b"; par->parnames[MIDPOINT_ELEVATION] = "zw", par->parnames[EFFECTIVE_HEAT_CAPACITY] = "cpt", + par->parnames[JOULE_THOMSON_EFFECT] = "ejt"; par->parnames[INITIAL_TEMPERATURE] = "Ti"; /******************** pointers to delta_pwf functions ********************/ @@ -683,7 +684,6 @@ void read_inifile(modelparameters *par) par->h = iniparser_getdouble(ini, "Test description:h", 0.0); par->rw = iniparser_getdouble(ini, "Test description:rw", 0.0); par->ct = iniparser_getdouble(ini, "Test description:ct", 0.0); - par->ejt = iniparser_getdouble(ini, "Test description:ejt", 0.0); par->rhosc = iniparser_getdouble(ini, "Test description:rhosc", 0.0); par->cp = iniparser_getdouble(ini, "Test description:cp", 0.0); diff --git a/src/models/dTwf.c b/src/models/dTwf.c index 37f17ec..850271f 100644 --- a/src/models/dTwf.c +++ b/src/models/dTwf.c @@ -16,7 +16,7 @@ * Transient temperature behavior and analysis of single-phase liquid-water * geothermal reservoirs during drawdown and buildup tests: Part I. * Theory, new analytical and approximate solutions. -* Journal of Petroleum Science and Engineering, 146, 637–656. +* Journal of Petroleum Science and Engineering, 146, 637�656. * https://doi.org/10.1016/j.petrol.2016.08.003 */ @@ -28,21 +28,22 @@ double dTwf(const modelparameters *p, double t) { double a, b, cpR, f, d; - double k, S, cpt; + double k, S, cpt, ejt; gsl_set_error_handler_off(); k = p->rpval[PERMEABILITY]; S = p->rpval[SKIN_FACTOR]; cpt = p->rpval[EFFECTIVE_HEAT_CAPACITY]; + ejt = p->rpval[JOULE_THOMSON_EFFECT]; a = (p->C2 * p->qB * p->mu) / (k * p->h); b = (p->rw * p->rw * p->phi * p->ct * p->mu ) / (4.0 * k * p->C1); cpR = (p->rhosc / p->B) * p->cp / cpt; - f = p->phi * cpR * (p->ejt + 1.0 / (p->rhosc * p->cp / p->B)) - p->ejt; + f = p->phi * cpR * (ejt + 1.0 / (p->rhosc * p->cp / p->B)) - ejt; d = (p->phi * cpR * p->ct) * a * 0.5; - return -0.5*a*( -p->ejt*(gsl_sf_expint_E1(b/t) + 2.0*S) - f*gsl_sf_expint_E1(b/t + d) ); + return -0.5*a*( -ejt*(gsl_sf_expint_E1(b/t) + 2.0*S) - f*gsl_sf_expint_E1(b/t + d) ); } /*****************************************************************************/ From 7ad60773aaffb1a22af117e9585e333501ec5074 Mon Sep 17 00:00:00 2001 From: Cintia Goncalves Machado Date: Tue, 31 Aug 2021 14:48:43 +0200 Subject: [PATCH 2/4] add ejt to modelparam --- src/captas.c | 2 +- src/models/modelparam.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/captas.c b/src/captas.c index 9e68286..2e8a8fd 100644 --- a/src/captas.c +++ b/src/captas.c @@ -534,8 +534,8 @@ void init_parameters(modelparameters *par) par->parnames[PENETRATION_RATIO] = "b"; par->parnames[MIDPOINT_ELEVATION] = "zw", par->parnames[EFFECTIVE_HEAT_CAPACITY] = "cpt", + par->parnames[INITIAL_TEMPERATURE] = "Ti", par->parnames[JOULE_THOMSON_EFFECT] = "ejt"; - par->parnames[INITIAL_TEMPERATURE] = "Ti"; /******************** pointers to delta_pwf functions ********************/ for(i = 0; i < NPMODELS; i++){ diff --git a/src/models/modelparam.h b/src/models/modelparam.h index 31a4a28..a0cd325 100644 --- a/src/models/modelparam.h +++ b/src/models/modelparam.h @@ -30,6 +30,7 @@ #define MIDPOINT_ELEVATION 18 #define EFFECTIVE_HEAT_CAPACITY 19 #define INITIAL_TEMPERATURE 20 +#define JOULE_THOMSON_EFFECT 21 typedef struct { From 2cad172e4db09130a77fd99ff89429bd89ddeee5 Mon Sep 17 00:00:00 2001 From: Cintia Goncalves Machado Date: Tue, 31 Aug 2021 14:54:37 +0200 Subject: [PATCH 3/4] effect to coefficient --- src/captas.c | 2 +- src/models/dTwf.c | 2 +- src/models/modelparam.h | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/captas.c b/src/captas.c index 2e8a8fd..991a391 100644 --- a/src/captas.c +++ b/src/captas.c @@ -535,7 +535,7 @@ void init_parameters(modelparameters *par) par->parnames[MIDPOINT_ELEVATION] = "zw", par->parnames[EFFECTIVE_HEAT_CAPACITY] = "cpt", par->parnames[INITIAL_TEMPERATURE] = "Ti", - par->parnames[JOULE_THOMSON_EFFECT] = "ejt"; + par->parnames[COEFFICIENT_JOULE_THOMSON] = "ejt"; /******************** pointers to delta_pwf functions ********************/ for(i = 0; i < NPMODELS; i++){ diff --git a/src/models/dTwf.c b/src/models/dTwf.c index 850271f..2c38432 100644 --- a/src/models/dTwf.c +++ b/src/models/dTwf.c @@ -35,7 +35,7 @@ double dTwf(const modelparameters *p, double t) k = p->rpval[PERMEABILITY]; S = p->rpval[SKIN_FACTOR]; cpt = p->rpval[EFFECTIVE_HEAT_CAPACITY]; - ejt = p->rpval[JOULE_THOMSON_EFFECT]; + ejt = p->rpval[COEFFICIENT_JOULE_THOMSON]; a = (p->C2 * p->qB * p->mu) / (k * p->h); b = (p->rw * p->rw * p->phi * p->ct * p->mu ) / (4.0 * k * p->C1); diff --git a/src/models/modelparam.h b/src/models/modelparam.h index a0cd325..6706be6 100644 --- a/src/models/modelparam.h +++ b/src/models/modelparam.h @@ -30,7 +30,7 @@ #define MIDPOINT_ELEVATION 18 #define EFFECTIVE_HEAT_CAPACITY 19 #define INITIAL_TEMPERATURE 20 -#define JOULE_THOMSON_EFFECT 21 +#define COEFFICIENT_JOULE_THOMSON 21 typedef struct { @@ -63,7 +63,6 @@ typedef struct ct, // total compressibility rw, // wellbore radius h, // formation thickness - ejt, // joule-thomson coefficient rhosc, // density at standard conditions cp; // specific heat capacity From 467eb394e6ff121887be6fac409062afc1dadd25 Mon Sep 17 00:00:00 2001 From: Cintia Goncalves Machado Date: Tue, 31 Aug 2021 15:52:57 +0200 Subject: [PATCH 4/4] fix ejt --- src/captas.c | 2 +- src/models/dTwf.c | 2 +- src/models/modelparam.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/captas.c b/src/captas.c index 991a391..ff16b35 100644 --- a/src/captas.c +++ b/src/captas.c @@ -535,7 +535,7 @@ void init_parameters(modelparameters *par) par->parnames[MIDPOINT_ELEVATION] = "zw", par->parnames[EFFECTIVE_HEAT_CAPACITY] = "cpt", par->parnames[INITIAL_TEMPERATURE] = "Ti", - par->parnames[COEFFICIENT_JOULE_THOMSON] = "ejt"; + par->parnames[JOULE_THOMSON_COEFFICIENT] = "ejt"; /******************** pointers to delta_pwf functions ********************/ for(i = 0; i < NPMODELS; i++){ diff --git a/src/models/dTwf.c b/src/models/dTwf.c index 2c38432..832f6e5 100644 --- a/src/models/dTwf.c +++ b/src/models/dTwf.c @@ -35,7 +35,7 @@ double dTwf(const modelparameters *p, double t) k = p->rpval[PERMEABILITY]; S = p->rpval[SKIN_FACTOR]; cpt = p->rpval[EFFECTIVE_HEAT_CAPACITY]; - ejt = p->rpval[COEFFICIENT_JOULE_THOMSON]; + ejt = p->rpval[JOULE_THOMSON_COEFFICIENT]; a = (p->C2 * p->qB * p->mu) / (k * p->h); b = (p->rw * p->rw * p->phi * p->ct * p->mu ) / (4.0 * k * p->C1); diff --git a/src/models/modelparam.h b/src/models/modelparam.h index 6706be6..c853176 100644 --- a/src/models/modelparam.h +++ b/src/models/modelparam.h @@ -30,7 +30,7 @@ #define MIDPOINT_ELEVATION 18 #define EFFECTIVE_HEAT_CAPACITY 19 #define INITIAL_TEMPERATURE 20 -#define COEFFICIENT_JOULE_THOMSON 21 +#define JOULE_THOMSON_COEFFICIENT 21 typedef struct {