mirror of
https://git.gfz-potsdam.de/naaice/iphreeqc.git
synced 2025-12-16 16:44:49 +01:00
added pointers for solid solution and ss component in unknown struct to speed calculations, all test cases run
git-svn-id: svn://136.177.114.72/svn_GW/phreeqc3/trunk@7724 1feff8c3-07ed-0310-ac33-dd36852eb9cd
This commit is contained in:
parent
11ef24eb4b
commit
0b7b5f7c07
@ -281,7 +281,7 @@ cxxPPassemblage::add(const cxxPPassemblage & addee, LDBLE extensive)
|
||||
//cxxNameDouble eltList;
|
||||
this->eltList.add_extensive(addee.eltList, extensive);
|
||||
}
|
||||
|
||||
#ifdef SKIP
|
||||
cxxPPassemblageComp * cxxPPassemblage::
|
||||
Find(const std::string name_in)
|
||||
{
|
||||
@ -303,6 +303,24 @@ Find(const std::string name_in)
|
||||
}
|
||||
return comp;
|
||||
}
|
||||
#endif
|
||||
cxxPPassemblageComp * cxxPPassemblage::
|
||||
Find(const std::string name_in)
|
||||
{
|
||||
cxxPPassemblageComp * comp = NULL;
|
||||
std::map<std::string, cxxPPassemblageComp>::iterator it;
|
||||
it = this->pp_assemblage_comps.begin();
|
||||
for ( ; it != this->pp_assemblage_comps.end(); it++)
|
||||
{
|
||||
if (Utilities::strcmp_nocase(name_in.c_str(), it->first.c_str()) == 0)
|
||||
{
|
||||
comp = &it->second;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return comp;
|
||||
}
|
||||
|
||||
const std::vector< std::string >::value_type temp_vopts[] = {
|
||||
std::vector< std::string >::value_type("eltlist"), // 0
|
||||
std::vector< std::string >::value_type("component"), // 1
|
||||
|
||||
@ -2236,7 +2236,8 @@ mb_ss(void)
|
||||
{
|
||||
if (x[i]->type != SS_MOLES)
|
||||
break;
|
||||
cxxSS *ss_ptr = use.Get_ss_assemblage_ptr()->Find(x[i]->ss_name);
|
||||
//cxxSS *ss_ptr = use.Get_ss_assemblage_ptr()->Find(x[i]->ss_name);
|
||||
cxxSS *ss_ptr = (cxxSS *) x[i]->ss_ptr;
|
||||
x[i]->ss_in = ss_ptr->Get_ss_in() ? TRUE : FALSE;
|
||||
}
|
||||
return (OK);
|
||||
@ -3798,8 +3799,10 @@ reset(void)
|
||||
x[i]->moles -= delta[i];
|
||||
if (x[i]->moles < MIN_TOTAL_SS && calculating_deriv == FALSE)
|
||||
x[i]->moles = MIN_TOTAL_SS;
|
||||
cxxSS *ss_ptr = use.Get_ss_assemblage_ptr()->Find(x[i]->ss_name);
|
||||
cxxSScomp *comp_ptr = ss_ptr->Find(x[i]->ss_comp_name);
|
||||
//cxxSS *ss_ptr = use.Get_ss_assemblage_ptr()->Find(x[i]->ss_name);
|
||||
cxxSS *ss_ptr = (cxxSS *) x[i]->ss_ptr;
|
||||
//cxxSScomp *comp_ptr = ss_ptr->Find(x[i]->ss_comp_name);
|
||||
cxxSScomp *comp_ptr = (cxxSScomp *) x[i]->ss_comp_ptr;
|
||||
comp_ptr->Set_moles(x[i]->moles);
|
||||
/* Pitzer gamma */
|
||||
}
|
||||
|
||||
9
prep.cpp
9
prep.cpp
@ -262,7 +262,9 @@ quick_setup(void)
|
||||
{
|
||||
for (size_t k = 0; k < ss_ptrs[j]->Get_ss_comps().size(); k++)
|
||||
{
|
||||
x[i]->ss_ptr = ss_ptrs[j];
|
||||
cxxSScomp *comp_ptr = &(ss_ptrs[j]->Get_ss_comps()[k]);
|
||||
x[i]->ss_comp_ptr = comp_ptr;
|
||||
x[i]->moles = comp_ptr->Get_moles();
|
||||
if (x[i]->moles <= 0)
|
||||
{
|
||||
@ -331,7 +333,7 @@ quick_setup(void)
|
||||
/* moles picked up from master->total */
|
||||
}
|
||||
else if (x[i]->type == SURFACE_CB1 || x[i]->type == SURFACE_CB2)
|
||||
{
|
||||
{
|
||||
cxxSurfaceCharge *charge_ptr = use.Get_surface_ptr()->Find_charge(x[i]->surface_charge);
|
||||
x[i]->related_moles = charge_ptr->Get_grams();
|
||||
x[i]->mass_water = charge_ptr->Get_mass_water();
|
||||
@ -663,7 +665,8 @@ build_ss_assemblage(void)
|
||||
{
|
||||
if (x[i]->type != SS_MOLES)
|
||||
continue;
|
||||
cxxSS *ss_ptr = use.Get_ss_assemblage_ptr()->Find(x[i]->ss_name);
|
||||
//cxxSS *ss_ptr = use.Get_ss_assemblage_ptr()->Find(x[i]->ss_name);
|
||||
cxxSS *ss_ptr = (cxxSS *) x[i]->ss_ptr;
|
||||
assert(ss_ptr);
|
||||
if (ss_ptr != ss_ptr_old)
|
||||
{
|
||||
@ -3314,7 +3317,9 @@ setup_ss_assemblage(void)
|
||||
comp_ptr->Set_initial_moles(x[count_unknowns]->moles);
|
||||
x[count_unknowns]->ln_moles = log(x[count_unknowns]->moles);
|
||||
x[count_unknowns]->ss_name = string_hsave(ss_ptrs[j]->Get_name().c_str());
|
||||
x[count_unknowns]->ss_ptr = ss_ptrs[j];
|
||||
x[count_unknowns]->ss_comp_name = string_hsave(comp_ptr->Get_name().c_str());
|
||||
x[count_unknowns]->ss_comp_ptr = comp_ptr;
|
||||
x[count_unknowns]->ss_comp_number = (int) i;
|
||||
x[count_unknowns]->phase = phase_ptr;
|
||||
x[count_unknowns]->number = count_unknowns;
|
||||
|
||||
@ -3118,8 +3118,11 @@ unknown_alloc(void)
|
||||
unknown_ptr->si = 0.0;
|
||||
unknown_ptr->s = NULL;
|
||||
unknown_ptr->exch_comp = NULL;
|
||||
unknown_ptr->pp_assemblage_comp_ptr = NULL;
|
||||
unknown_ptr->ss_name = NULL;
|
||||
unknown_ptr->ss_ptr = NULL;
|
||||
unknown_ptr->ss_comp_name = NULL;
|
||||
unknown_ptr->ss_comp_ptr = NULL;
|
||||
unknown_ptr->ss_comp_number = 0;
|
||||
unknown_ptr->ss_in = FALSE;
|
||||
unknown_ptr->surface_comp = NULL;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user