Change MIN_TOTAL to 1e-18

MIN_TOTAL added to KNOBS.

git-svn-id: svn://136.177.114.72/svn_GW/phreeqc3/trunk@11041 1feff8c3-07ed-0310-ac33-dd36852eb9cd
This commit is contained in:
David L Parkhurst 2016-04-12 17:48:22 +00:00
parent 48b4d8706a
commit 79a4965661
4 changed files with 42 additions and 14 deletions

View File

@ -275,6 +275,13 @@ void Phreeqc::init(void)
punch.charge_balance = FALSE;
punch.percent_error = FALSE;
#endif
MIN_LM = -30.0; /* minimum log molality allowed before molality set to zero */
LOG_ZERO_MOLALITY = -30; /* molalities <= LOG_ZERO_MOLALITY are considered equal to zero */
MIN_RELATED_LOG_ACTIVITY = -30;
MIN_TOTAL = 1e-18;
MIN_TOTAL_SS = MIN_TOTAL/100;
MIN_RELATED_SURFACE = MIN_TOTAL*100;
// auto Rxn_temperature_map;
// auto Rxn_pressure_map;
@ -1163,6 +1170,12 @@ Phreeqc::InternalCopy(const Phreeqc *pSrc)
current_mu = pSrc->current_mu;
mu_terms_in_logk = pSrc->mu_terms_in_logk;
MIN_LM = pSrc->MIN_LM; /* minimum log molality allowed before molality set to zero */
LOG_ZERO_MOLALITY = pSrc->LOG_ZERO_MOLALITY; /* molalities <= LOG_ZERO_MOLALITY are considered equal to zero */
MIN_RELATED_LOG_ACTIVITY = pSrc->MIN_RELATED_LOG_ACTIVITY;
MIN_TOTAL = pSrc->MIN_TOTAL;
MIN_TOTAL_SS = pSrc->MIN_TOTAL_SS;
MIN_RELATED_SURFACE = pSrc->MIN_RELATED_SURFACE;
/* ----------------------------------------------------------------------
* STRUCTURES
* ---------------------------------------------------------------------- */

View File

@ -1598,6 +1598,13 @@ protected:
int stop_program;
int incremental_reactions;
double MIN_LM;
double LOG_ZERO_MOLALITY;
double MIN_TOTAL;
double MIN_TOTAL_SS;
double MIN_RELATED_SURFACE;
double MIN_RELATED_LOG_ACTIVITY;
int count_strings;
int max_strings;

View File

@ -132,19 +132,19 @@
#define MAX_LM 3.0 /* maximum log molality allowed in intermediate iterations */
#define MAX_M 1000.0
#ifdef USE_DECIMAL128
#define MIN_LM -80.0 /* minimum log molality allowed before molality set to zero */
#define LOG_ZERO_MOLALITY -80 /* molalities <= LOG_ZERO_MOLALITY are considered equal to zero */
#define MIN_TOTAL 1e-60
#define MIN_TOTAL_SS MIN_TOTAL/100
#define MIN_RELATED_SURFACE MIN_TOTAL*100
#define MIN_RELATED_LOG_ACTIVITY -60
//#define MIN_LM -80.0 /* minimum log molality allowed before molality set to zero */
//#define LOG_ZERO_MOLALITY -80 /* molalities <= LOG_ZERO_MOLALITY are considered equal to zero */
//#define MIN_TOTAL 1e-60
//#define MIN_TOTAL_SS MIN_TOTAL/100
//#define MIN_RELATED_SURFACE MIN_TOTAL*100
//#define MIN_RELATED_LOG_ACTIVITY -60
#else
#define MIN_LM -30.0 /* minimum log molality allowed before molality set to zero */
#define LOG_ZERO_MOLALITY -30 /* molalities <= LOG_ZERO_MOLALITY are considered equal to zero */
#define MIN_TOTAL 1e-25
#define MIN_TOTAL_SS MIN_TOTAL/100
#define MIN_RELATED_SURFACE MIN_TOTAL*100
#define MIN_RELATED_LOG_ACTIVITY -30
//#define MIN_LM -30.0 /* minimum log molality allowed before molality set to zero */
//#define LOG_ZERO_MOLALITY -30 /* molalities <= LOG_ZERO_MOLALITY are considered equal to zero */
//#define MIN_TOTAL 1e-25
//#define MIN_TOTAL_SS MIN_TOTAL/100
//#define MIN_RELATED_SURFACE MIN_TOTAL*100
//#define MIN_RELATED_LOG_ACTIVITY -30
#endif
#define REF_PRES_PASCAL 1.01325E5 /* Reference pressure: 1 atm */
/*

View File

@ -8271,9 +8271,11 @@ read_debug(void)
"try", /* 17 */
"numerical_fixed_volume", /* 18 */
"force_numerical_fixed_volume", /* 19 */
"equi_delay" /* 20 */
"equi_delay", /* 20 */
"minimum_total", /* 21 */
"min_total" /* 22 */
};
int count_opt_list = 21;
int count_opt_list = 23;
/*
* Read parameters:
* ineq_tol;
@ -8369,6 +8371,12 @@ read_debug(void)
case 20: /* equi_delay */
sscanf(next_char, "%d", &equi_delay);
break;
case 21: /* minimum_total */
case 22: /* min_total */
sscanf(next_char, "%d", &MIN_TOTAL);
MIN_TOTAL_SS = MIN_TOTAL/100;
MIN_RELATED_SURFACE = MIN_TOTAL*100;
break;
}
if (return_value == EOF || return_value == KEYWORD)
break;