Merge commit '83e3b8c063e9706dae7082a19441646bdc621a21'

This commit is contained in:
Scott R Charlton 2018-08-01 15:38:30 -06:00
commit b7b9562f86
6 changed files with 22 additions and 21 deletions

View File

@ -1001,7 +1001,11 @@ void Phreeqc::init(void)
/* phrq_io_output.cpp ------------------------------- */
forward_output_to_log = 0;
/* phreeqc_files.cpp ------------------------------- */
default_data_base = string_duplicate("phreeqc.dat");
#ifdef NPP
default_data_base = string_duplicate("c:\\phreeqc\\database\\phreeqc.dat");
#else
default_data_base = string_duplicate("phreeqc.dat");
#endif
#ifdef PHREEQ98
int outputlinenr;
char *LogFileNameC;

View File

@ -277,8 +277,8 @@ write_banner(void)
/* version */
#ifdef NPP
//len = sprintf(buffer, "* PHREEQC-%s *", "3.4.2 AmpŠre");
len = sprintf(buffer, "* PHREEQC-%s *", "3.4.2");
//len = sprintf(buffer, "* PHREEQC-%s *", "3.4.4 AmpŠre");
len = sprintf(buffer, "* PHREEQC-%s *", "3.4.4");
#else
len = sprintf(buffer, "* PHREEQC-%s *", "@VERSION@");
#endif
@ -302,7 +302,7 @@ write_banner(void)
/* date */
#ifdef NPP
len = sprintf(buffer, "%s", "February 27, 2018");
len = sprintf(buffer, "%s", "April 5, 2018");
#else
len = sprintf(buffer, "%s", "@VER_DATE@");
#endif
@ -492,12 +492,12 @@ process_file_names(int argc, char *argv[], std::istream **db_cookie,
screen_msg(sformatf("Database file: %s\n\n", token));
strcpy(db_file, token);
#ifdef NPP
//output_msg(sformatf("Using PHREEQC: version 3.4.2 Ampère, compiled February 27, 2018\n"));
//output_msg(sformatf("Using PHREEQC: version 3.4.4 Ampère, compiled April 5, 2018\n"));
#endif
output_msg(sformatf(" Input file: %s\n", in_file));
output_msg(sformatf(" Output file: %s\n", out_file));
#ifdef NPP
output_msg(sformatf("Using PHREEQC: version 3.4.2, compiled February 27, 2018\n"));
output_msg(sformatf("Using PHREEQC: version 3.4.4, compiled April 5, 2018\n"));
#endif
output_msg(sformatf("Database file: %s\n\n", token));
#ifdef NPP

View File

@ -754,6 +754,7 @@ calc_all_donnan(void)
/*
* calculate g for each surface...
*/
initial_surface_water();
converge = TRUE;
for (int j = 0; j < count_unknowns; j++)
{
@ -791,9 +792,9 @@ calc_all_donnan(void)
cd_m = -1;
}
surf_chrg_eq = A_surf * f_sinh * sinh(f_psi) / F_C_MOL;
if (surf_chrg_eq < -5e3)
if (fabs(surf_chrg_eq) > 5e3)
{
surf_chrg_eq = -5e3;
surf_chrg_eq = (surf_chrg_eq < 0 ? -5e3 : 5e3);
var1 = surf_chrg_eq / (A_surf * f_sinh / F_C_MOL);
var1 = (var1 + sqrt(var1 * var1 + 1));
f_psi = (var1 > 1e-8 ? log(var1) : -18.4);
@ -1053,15 +1054,13 @@ calc_psi_avg(cxxSurfaceCharge *charge_ptr, LDBLE surf_chrg_eq)
for (it = charge_group_map.begin(); it != charge_group_map.end(); it++)
{
LDBLE z = it->first;
if (!z || (use.Get_surface_ptr()->Get_only_counter_ions() && surf_chrg_eq * z > 0))
continue;
LDBLE eq = it->second;
/* multiply with ratio_aq for multiplier options cp and cm
in calc_all_donnan (not used now)... */
temp = exp(-z * p) * ratio_aq;
if (use.Get_surface_ptr()->Get_only_counter_ions() &&
((surf_chrg_eq < 0 && z < 0)
|| (surf_chrg_eq > 0 && z > 0)))
temp = 0.0;
fd += eq * temp;
fd1 -= z * eq * temp;
}

View File

@ -2539,7 +2539,6 @@ run_reactions(int i, LDBLE kin_time, int use_mix, LDBLE step_fraction)
iopt[j] = 0;
ropt[j] = 0;
}
/*
* Do mix first
*/
@ -2552,9 +2551,9 @@ run_reactions(int i, LDBLE kin_time, int use_mix, LDBLE step_fraction)
cvode_rate_sim_time = rate_sim_time;
if (multi_Dflag)
converge = set_and_run_wrapper(i, NOMIX, FALSE, i, 0.0);
converge = set_and_run_wrapper(i, NOMIX, FALSE, i, step_fraction);
else
converge = set_and_run_wrapper(i, use_mix, FALSE, i, 0.0);
converge = set_and_run_wrapper(i, use_mix, FALSE, i, step_fraction);
if (converge == MASS_BALANCE)
error_msg
("Negative concentration in system. Stopping calculation.",
@ -2570,7 +2569,6 @@ run_reactions(int i, LDBLE kin_time, int use_mix, LDBLE step_fraction)
{
cvode_ss_assemblage_save = new cxxSSassemblage(*ss_assemblage_ptr);
}
/* allocate space for CVODE */
kinetics_machEnv = M_EnvInit_Serial(n_reactions);
kinetics_machEnv->phreeqc_ptr = this;
@ -2735,8 +2733,8 @@ run_reactions(int i, LDBLE kin_time, int use_mix, LDBLE step_fraction)
use.Set_ss_assemblage_ptr(Utilities::Rxn_find(Rxn_ss_assemblage_map, cvode_ss_assemblage_save->Get_n_user()));
}
calc_final_kinetic_reaction(kinetics_ptr);
if (set_and_run_wrapper(i, NOMIX, TRUE, nsaver, 1.0) ==
MASS_BALANCE)
if (set_and_run_wrapper(i, NOMIX, TRUE, nsaver, 0) ==
MASS_BALANCE)
{
/*error_msg("FAIL 2 after successful integration in CVode", CONTINUE); */
warning_msg("FAIL 2 after successful integration in CVode");

View File

@ -3749,7 +3749,7 @@ reset(void)
(double) mass_water_surfaces_x));
}
x[i]->master[0]->s->moles = mass_water_aq_x / gfw_water;
/*appt */
if (use.Get_surface_ptr() != NULL)
{
if (use.Get_surface_ptr()->Get_debye_lengths() > 0)

View File

@ -905,7 +905,7 @@ read_transport(void)
cell_data[punch_temp[i]].punch = TRUE;
}
}
else if (simul_tr == 1)
else if (simul_tr == 1 || old_cells != count_cells)
for (i = 0; i < all_cells; i++)
cell_data[i].punch = TRUE;
/*
@ -928,7 +928,7 @@ read_transport(void)
cell_data[print_temp[i]].print = TRUE;
}
}
else if (simul_tr == 1)
else if (simul_tr == 1 || old_cells != count_cells)
for (i = 0; i < all_cells; i++)
cell_data[i].print = TRUE;
//#define OLD_POROSITY