replaced Find with pp_assemblage_comp_ptr stored in struct unknown

git-svn-id: svn://136.177.114.72/svn_GW/phreeqc3/trunk@7723 1feff8c3-07ed-0310-ac33-dd36852eb9cd
This commit is contained in:
David L Parkhurst 2013-05-16 17:58:27 +00:00
parent f127add44a
commit 11ef24eb4b
5 changed files with 78 additions and 40 deletions

View File

@ -823,7 +823,8 @@ equi_phase_delta(const char *phase_name)
}
else
{
cxxPPassemblageComp * comp_ptr = pp_assemblage_ptr->Find(x[j]->pp_assemblage_comp_name);
//cxxPPassemblageComp * comp_ptr = pp_assemblage_ptr->Find(x[j]->pp_assemblage_comp_name);
cxxPPassemblageComp * comp_ptr = (cxxPPassemblageComp *) x[j]->pp_assemblage_comp_ptr;
if (state != TRANSPORT && state != PHAST)
{
LDBLE delta_moles =
@ -2890,14 +2891,17 @@ system_total_elt(const char *total_name)
{
if (x[i]->type != PP)
continue;
std::map<std::string, cxxPPassemblageComp>::iterator it;
it = pp_assemblage_ptr->Get_pp_assemblage_comps().find(x[i]->pp_assemblage_comp_name);
if (it->second.Get_add_formula().size() > 0)
//std::map<std::string, cxxPPassemblageComp>::iterator it;
//it = pp_assemblage_ptr->Get_pp_assemblage_comps().find(x[i]->pp_assemblage_comp_name);
cxxPPassemblageComp * comp_ptr = (cxxPPassemblageComp * ) x[i]->pp_assemblage_comp_ptr;
//if (it->second.Get_add_formula().size() > 0)
if (comp_ptr->Get_add_formula().size() > 0)
continue;
count_elts = 0;
paren_count = 0;
int j;
struct phase * phase_ptr = phase_bsearch(x[i]->pp_assemblage_comp_name, &j, FALSE);
//struct phase * phase_ptr = phase_bsearch(x[i]->pp_assemblage_comp_name, &j, FALSE);
struct phase * phase_ptr = x[i]->phase;
add_elt_list(phase_ptr->next_elt, x[i]->moles);
if (count_elts > 0)
{
@ -3161,14 +3165,17 @@ system_total_elt_secondary(const char *total_name)
{
if (x[i]->type != PP)
continue;
std::map<std::string, cxxPPassemblageComp>::iterator it;
it = pp_assemblage_ptr->Get_pp_assemblage_comps().find(x[i]->pp_assemblage_comp_name);
if (it->second.Get_add_formula().size() > 0)
//std::map<std::string, cxxPPassemblageComp>::iterator it;
//it = pp_assemblage_ptr->Get_pp_assemblage_comps().find(x[i]->pp_assemblage_comp_name);
cxxPPassemblageComp * comp_ptr = (cxxPPassemblageComp * ) x[i]->pp_assemblage_comp_ptr;
//if (it->second.Get_add_formula().size() > 0)
if (comp_ptr->Get_add_formula().size() > 0)
continue;
count_elts = 0;
paren_count = 0;
int j;
struct phase * phase_ptr = phase_bsearch(x[i]->pp_assemblage_comp_name, &j, FALSE);
//struct phase * phase_ptr = phase_bsearch(x[i]->pp_assemblage_comp_name, &j, FALSE);
struct phase * phase_ptr = x[i]->phase;
add_elt_list(phase_ptr->next_sys_total, x[i]->moles);
if (count_elts > 0)
{

View File

@ -809,8 +809,11 @@ struct unknown
struct species *s;
const char * exch_comp;
const char *pp_assemblage_comp_name;
void *pp_assemblage_comp_ptr;
const char * ss_name;
void *ss_ptr;
const char * ss_comp_name;
void *ss_comp_ptr;
int ss_comp_number;
int ss_in;
const char *surface_comp;

View File

@ -407,7 +407,8 @@ check_residuals(void)
else if (x[i]->type == PP)
{
cxxPPassemblage * pp_assemblage_ptr = use.Get_pp_assemblage_ptr();
cxxPPassemblageComp * comp_ptr = pp_assemblage_ptr->Find(x[i]->pp_assemblage_comp_name);
//cxxPPassemblageComp * comp_ptr = pp_assemblage_ptr->Find(x[i]->pp_assemblage_comp_name);
cxxPPassemblageComp * comp_ptr = (cxxPPassemblageComp *) x[i]->pp_assemblage_comp_ptr;
if (comp_ptr->Get_add_formula().size() == 0)
{
if (x[i]->dissolve_only == TRUE)
@ -930,11 +931,13 @@ ineq(int in_kode)
if (x[i]->type == PP)
{
std::map<std::string, cxxPPassemblageComp>::iterator it;
it = pp_assemblage_ptr->Get_pp_assemblage_comps().find(x[i]->pp_assemblage_comp_name);
assert(it != pp_assemblage_ptr->Get_pp_assemblage_comps().end());
//std::map<std::string, cxxPPassemblageComp>::iterator it;
//it = pp_assemblage_ptr->Get_pp_assemblage_comps().find(x[i]->pp_assemblage_comp_name);
//assert(it != pp_assemblage_ptr->Get_pp_assemblage_comps().end());
cxxPPassemblageComp * comp_ptr = (cxxPPassemblageComp *) x[i]->pp_assemblage_comp_ptr;
if (residual[i] > 0e-8 && x[i]->moles > 0 &&
it->second.Get_add_formula().size() == 0
//it->second.Get_add_formula().size() == 0
comp_ptr->Get_add_formula().size() == 0
&& x[i]->dissolve_only == FALSE)
{
/*
@ -1118,22 +1121,27 @@ ineq(int in_kode)
*/
if (x[i]->type == PP)
{
std::map<std::string, cxxPPassemblageComp>::iterator it;
it = pp_assemblage_ptr->Get_pp_assemblage_comps().find(x[i]->pp_assemblage_comp_name);
//std::map<std::string, cxxPPassemblageComp>::iterator it;
//it = pp_assemblage_ptr->Get_pp_assemblage_comps().find(x[i]->pp_assemblage_comp_name);
/* not in model, ignore */
if (x[i]->phase->in == FALSE)
continue;
if (it->second.Get_force_equality())
continue;
cxxPPassemblageComp * comp_ptr = (cxxPPassemblageComp *) x[i]->pp_assemblage_comp_ptr;
//if (it->second.Get_force_equality())
if (comp_ptr->Get_force_equality())
continue;
/* Undersaturated and no mass, ignore */
//if (x[i]->f > 1e-14/*0e-8*/ && x[i]->moles <= 0
if (x[i]->f > 0e-8 && x[i]->moles <= 0
&& it->second.Get_add_formula().size() == 0)
//&& it->second.Get_add_formula().size() == 0)
&& comp_ptr->Get_add_formula().size() == 0)
{
continue;
}
else if (x[i]->f < 0e-8 && x[i]->dissolve_only == TRUE
&& (x[i]->moles - it->second.Get_initial_moles() >= 0))
//&& (x[i]->moles - it->second.Get_initial_moles() >= 0))
&& (x[i]->moles - comp_ptr->Get_initial_moles() >= 0))
{
continue;
}
@ -1144,7 +1152,8 @@ ineq(int in_kode)
(void *) &(array[i * (count_unknowns + 1)]),
(size_t) (count_unknowns + 1) * sizeof(LDBLE));
back_eq[l_count_rows] = i;
if (it->second.Get_add_formula().size() == 0
//if (it->second.Get_add_formula().size() == 0
if (comp_ptr->Get_add_formula().size() == 0
&& x[i]->dissolve_only == FALSE)
{
res[l_count_rows] = 1.0;
@ -1223,7 +1232,8 @@ ineq(int in_kode)
cxxPPassemblageComp *comp_ptr1 = NULL;
if (x[i]->type == PP)
{
comp_ptr = pp_assemblage_ptr->Find(x[i]->pp_assemblage_comp_name);
//comp_ptr = pp_assemblage_ptr->Find(x[i]->pp_assemblage_comp_name);
comp_ptr = (cxxPPassemblageComp *) x[i]->pp_assemblage_comp_ptr;
}
if (x[i]->type == SURFACE && x[i]->phase_unknown != NULL)
{
@ -1314,7 +1324,8 @@ ineq(int in_kode)
{
if (x[i]->type == PP)
{
comp_ptr = pp_assemblage_ptr->Find(x[i]->pp_assemblage_comp_name);
//comp_ptr = pp_assemblage_ptr->Find(x[i]->pp_assemblage_comp_name);
comp_ptr = (cxxPPassemblageComp *) x[i]->pp_assemblage_comp_ptr;
/* not in model, ignore */
if (x[i]->phase->in == FALSE)
continue;
@ -1410,7 +1421,8 @@ ineq(int in_kode)
{
if (x[i]->type == PP)
{
comp_ptr = pp_assemblage_ptr->Find(x[i]->pp_assemblage_comp_name);
//comp_ptr = pp_assemblage_ptr->Find(x[i]->pp_assemblage_comp_name);
comp_ptr = (cxxPPassemblageComp *) x[i]->pp_assemblage_comp_ptr;
if ((x[i]->moles <= 0.0 && x[i]->f > 0e-8 &&
comp_ptr->Get_add_formula().size() == 0)
|| x[i]->phase->in == FALSE)
@ -3103,7 +3115,8 @@ reset(void)
if (x[i]->dissolve_only == TRUE)
{
assert (x[i]->type == PP);
comp_ptr = pp_assemblage_ptr->Find(x[i]->pp_assemblage_comp_name);
//comp_ptr = pp_assemblage_ptr->Find(x[i]->pp_assemblage_comp_name);
comp_ptr = (cxxPPassemblageComp *) x[i]->pp_assemblage_comp_ptr;
assert(comp_ptr);
if ((delta[i] < 0.0)
&& (-delta[i] >
@ -3700,7 +3713,8 @@ reset(void)
}
else if (x[i]->type == PP)
{
comp_ptr = pp_assemblage_ptr->Find(x[i]->pp_assemblage_comp_name);
//comp_ptr = pp_assemblage_ptr->Find(x[i]->pp_assemblage_comp_name);
comp_ptr = (cxxPPassemblageComp *) x[i]->pp_assemblage_comp_ptr;
/*if (fabs(delta[i]) > epsilon) converge=FALSE; */
if (debug_model == TRUE)
{
@ -4042,7 +4056,8 @@ residuals(void)
}
else if (x[i]->type == PP)
{
cxxPPassemblageComp * comp_ptr = pp_assemblage_ptr->Find(x[i]->pp_assemblage_comp_name);
//cxxPPassemblageComp * comp_ptr = pp_assemblage_ptr->Find(x[i]->pp_assemblage_comp_name);
cxxPPassemblageComp * comp_ptr = (cxxPPassemblageComp *) x[i]->pp_assemblage_comp_ptr;
residual[i] = x[i]->f * LOG_10;
if (comp_ptr->Get_add_formula().size() == 0)
{
@ -5633,7 +5648,8 @@ set_inert_moles(void)
for (j = 0; j < count_unknowns; j++)
{
if (x[j]->type != PP) continue;
cxxPPassemblageComp * comp_ptr = pp_assemblage_ptr->Find(x[j]->pp_assemblage_comp_name);
//cxxPPassemblageComp * comp_ptr = pp_assemblage_ptr->Find(x[j]->pp_assemblage_comp_name);
cxxPPassemblageComp * comp_ptr = (cxxPPassemblageComp *) x[j]->pp_assemblage_comp_ptr;
if (comp_ptr->Get_precipitate_only())
{
x[j]->inert_moles = x[j]->moles;
@ -5652,7 +5668,8 @@ unset_inert_moles()
for (j = 0; j < count_unknowns; j++)
{
if (x[j]->type != PP) continue;
cxxPPassemblageComp * comp_ptr = pp_assemblage_ptr->Find(x[j]->pp_assemblage_comp_name);
//cxxPPassemblageComp * comp_ptr = pp_assemblage_ptr->Find(x[j]->pp_assemblage_comp_name);
cxxPPassemblageComp * comp_ptr = (cxxPPassemblageComp *) x[j]->pp_assemblage_comp_ptr;
if (comp_ptr->Get_precipitate_only())
{
x[j]->moles += x[j]->inert_moles;

View File

@ -198,7 +198,7 @@ quick_setup(void)
it = pp_assemblage_ptr->Get_pp_assemblage_comps().find(x[i]->pp_assemblage_comp_name);
assert(it != pp_assemblage_ptr->Get_pp_assemblage_comps().end());
cxxPPassemblageComp * comp_ptr = &(it->second);
x[i]->pp_assemblage_comp_ptr = comp_ptr;
x[i]->moles = comp_ptr->Get_moles();
/* A. Crapsi */
x[i]->si = comp_ptr->Get_si();
@ -954,7 +954,8 @@ build_jacobian_sums(int k)
{
if (x[kk]->type != PP)
continue;
if (x[kk]->phase->name == string_hsave(comp_ptr->Get_phase_name().c_str()))
//if (x[kk]->phase->name == string_hsave(comp_ptr->Get_phase_name().c_str()))
if (strcmp_nocase(x[kk]->phase->name, comp_ptr->Get_phase_name().c_str()) == 0)
break;
}
@ -1012,7 +1013,8 @@ build_jacobian_sums(int k)
{
if (x[kk]->type != PP)
continue;
if (x[kk]->phase->name == string_hsave(comp_ptr->Get_phase_name().c_str()))
//if (x[kk]->phase->name == string_hsave(comp_ptr->Get_phase_name().c_str()))
if (strcmp_nocase(x[kk]->phase->name, comp_ptr->Get_phase_name().c_str()) == 0)
break;
}
if (kk >= 0)
@ -1482,7 +1484,8 @@ build_pure_phases(void)
*/
count_elts = 0;
paren_count = 0;
cxxPPassemblageComp * comp_ptr = pp_assemblage_ptr->Find(x[i]->pp_assemblage_comp_name);
//cxxPPassemblageComp * comp_ptr = pp_assemblage_ptr->Find(x[i]->pp_assemblage_comp_name);
cxxPPassemblageComp * comp_ptr = (cxxPPassemblageComp *) x[i]->pp_assemblage_comp_ptr;
if (comp_ptr->Get_add_formula().size() > 0)
{
char * char_name = string_duplicate(comp_ptr->Get_add_formula().c_str());
@ -4076,6 +4079,7 @@ setup_pure_phases(void)
x[count_unknowns]->type = PP;
x[count_unknowns]->description = string_hsave(comp_ptr->Get_name().c_str());
x[count_unknowns]->pp_assemblage_comp_name = x[count_unknowns]->description;
x[count_unknowns]->pp_assemblage_comp_ptr = comp_ptr;
x[count_unknowns]->moles = comp_ptr->Get_moles();
x[count_unknowns]->phase = phase_ptr;
x[count_unknowns]->si = comp_ptr->Get_si();
@ -4116,7 +4120,8 @@ adjust_setup_pure_phases(void)
{
phase_ptr = x[i]->phase;
phase_ptrs.push_back(phase_ptr);
cxxPPassemblageComp * comp_ptr = pp_assemblage_ptr->Find(x[i]->pp_assemblage_comp_name);
//cxxPPassemblageComp * comp_ptr = pp_assemblage_ptr->Find(x[i]->pp_assemblage_comp_name);
cxxPPassemblageComp * comp_ptr = (cxxPPassemblageComp * ) x[i]->pp_assemblage_comp_ptr;
si_org = comp_ptr->Get_si_org();
if (phase_ptr->p_c > 0 && phase_ptr->t_c > 0)
{
@ -6067,7 +6072,8 @@ build_min_exch(void)
{
if (x[k]->type != PP)
continue;
if (x[k]->phase->name == string_hsave(comp_ref.Get_phase_name().c_str()))
//if (x[k]->phase->name == string_hsave(comp_ref.Get_phase_name().c_str()))
if (strcmp_nocase(x[k]->phase->name, comp_ref.Get_phase_name().c_str()) == 0)
break;
}
if (j == -1)
@ -6197,7 +6203,8 @@ build_min_surface(void)
{
if (x[k]->type != PP)
continue;
if (x[k]->phase->name == string_hsave(comp_ptr->Get_phase_name().c_str()))
//if (x[k]->phase->name == string_hsave(comp_ptr->Get_phase_name().c_str()))
if (strcmp_nocase(x[k]->phase->name, comp_ptr->Get_phase_name().c_str()) == 0)
break;
}
if (j == -1)
@ -6324,7 +6331,8 @@ setup_related_surface(void)
{
if (x[k]->type != PP)
continue;
if (x[k]->phase->name == string_hsave(comp_ptr->Get_phase_name().c_str()))
//if (x[k]->phase->name == string_hsave(comp_ptr->Get_phase_name().c_str()))
if (strcmp_nocase(x[k]->phase->name, comp_ptr->Get_phase_name().c_str()) == 0)
break;
}
if (k == -1)
@ -6347,7 +6355,8 @@ setup_related_surface(void)
{
if (x[k]->type != PP)
continue;
if (x[k]->phase->name == string_hsave(comp_i_ptr->Get_phase_name().c_str()))
//if (x[k]->phase->name == string_hsave(comp_i_ptr->Get_phase_name().c_str()))
if (strcmp_nocase(x[k]->phase->name, comp_i_ptr->Get_phase_name().c_str()) == 0)
break;
}
if (k == -1)

View File

@ -1283,7 +1283,8 @@ print_pp_assemblage(void)
{
if (x[j]->type != PP)
continue;
cxxPPassemblageComp * comp_ptr = pp_assemblage_ptr->Find(x[j]->pp_assemblage_comp_name);
//cxxPPassemblageComp * comp_ptr = pp_assemblage_ptr->Find(x[j]->pp_assemblage_comp_name);
cxxPPassemblageComp * comp_ptr = (cxxPPassemblageComp * ) x[j]->pp_assemblage_comp_ptr;
/*
* Print saturation index
*/
@ -2646,7 +2647,8 @@ punch_pp_assemblage(void)
{
if (x == NULL || x[j]->type != PP)
continue;
cxxPPassemblageComp * comp_ptr = pp_assemblage_ptr->Find(x[j]->pp_assemblage_comp_name);
//cxxPPassemblageComp * comp_ptr = pp_assemblage_ptr->Find(x[j]->pp_assemblage_comp_name);
cxxPPassemblageComp * comp_ptr = (cxxPPassemblageComp * ) x[j]->pp_assemblage_comp_ptr;
/*
* Print pure phase assemblage data
*/