mirror of
https://git.gfz-potsdam.de/naaice/iphreeqc.git
synced 2025-12-16 16:44:49 +01:00
added modify methods for restart files
This commit is contained in:
parent
1150a4a2aa
commit
fa7776b8fe
@ -2244,6 +2244,40 @@ namespace Utilities
|
|||||||
return phreeqc_cookie->cleanup_after_parser(parser);
|
return phreeqc_cookie->cleanup_after_parser(parser);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template < typename T >
|
||||||
|
int SB_read_modify(std::map < int, T > &m, CParser &parser)
|
||||||
|
{
|
||||||
|
typename std::map < int, T >::iterator it;
|
||||||
|
|
||||||
|
std::string key_name;
|
||||||
|
std::string::iterator b = parser.line().begin();
|
||||||
|
std::string::iterator e = parser.line().end();
|
||||||
|
CParser::copy_token(key_name, b, e);
|
||||||
|
|
||||||
|
cxxNumKeyword nk;
|
||||||
|
nk.read_number_description(parser);
|
||||||
|
T * entity_ptr = Utilities::Rxn_find(m, nk.Get_n_user());
|
||||||
|
if (!entity_ptr)
|
||||||
|
{
|
||||||
|
std::ostringstream errstr;
|
||||||
|
errstr << "Could not find " << key_name << " " << nk.Get_n_user() << ", ignoring modify data.\n";
|
||||||
|
//io->warning_msg(errstr.str().c_str());
|
||||||
|
|
||||||
|
// Don't throw, read data into dummy entity, then ignore
|
||||||
|
T entity;
|
||||||
|
entity_ptr = &entity;
|
||||||
|
entity_ptr->read_raw(parser, false);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
entity_ptr->read_raw(parser, false);
|
||||||
|
entity_ptr->Set_n_user(nk.Get_n_user());
|
||||||
|
entity_ptr->Set_n_user_end(nk.Get_n_user_end());
|
||||||
|
entity_ptr->Set_description(nk.Get_description());
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
template < typename T >
|
template < typename T >
|
||||||
void Rxn_mix(std::map <int, cxxMix> &mix_map, std::map < int, T > &entity_map, Phreeqc * phreeqc_cookie)
|
void Rxn_mix(std::map <int, cxxMix> &mix_map, std::map < int, T > &entity_map, Phreeqc * phreeqc_cookie)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1006,6 +1006,11 @@ cxxStorageBin::read_raw(CParser & parser)
|
|||||||
Solutions[entity.Get_n_user()] = entity;
|
Solutions[entity.Get_n_user()] = entity;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case Keywords::KEY_SOLUTION_MODIFY:
|
||||||
|
{
|
||||||
|
Utilities::SB_read_modify(this->Solutions, parser);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case Keywords::KEY_EXCHANGE_RAW:
|
case Keywords::KEY_EXCHANGE_RAW:
|
||||||
{
|
{
|
||||||
cxxExchange entity(this->Get_io());
|
cxxExchange entity(this->Get_io());
|
||||||
@ -1013,6 +1018,11 @@ cxxStorageBin::read_raw(CParser & parser)
|
|||||||
Exchangers[entity.Get_n_user()] = entity;
|
Exchangers[entity.Get_n_user()] = entity;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case Keywords::KEY_EXCHANGE_MODIFY:
|
||||||
|
{
|
||||||
|
Utilities::SB_read_modify(this->Exchangers, parser);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case Keywords::KEY_GAS_PHASE_RAW:
|
case Keywords::KEY_GAS_PHASE_RAW:
|
||||||
{
|
{
|
||||||
cxxGasPhase entity(this->Get_io());
|
cxxGasPhase entity(this->Get_io());
|
||||||
@ -1020,6 +1030,11 @@ cxxStorageBin::read_raw(CParser & parser)
|
|||||||
GasPhases[entity.Get_n_user()] = entity;
|
GasPhases[entity.Get_n_user()] = entity;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case Keywords::KEY_GAS_PHASE_MODIFY:
|
||||||
|
{
|
||||||
|
Utilities::SB_read_modify(this->GasPhases, parser);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case Keywords::KEY_KINETICS_RAW:
|
case Keywords::KEY_KINETICS_RAW:
|
||||||
{
|
{
|
||||||
cxxKinetics entity(this->Get_io());
|
cxxKinetics entity(this->Get_io());
|
||||||
@ -1027,7 +1042,11 @@ cxxStorageBin::read_raw(CParser & parser)
|
|||||||
Kinetics[entity.Get_n_user()] = entity;
|
Kinetics[entity.Get_n_user()] = entity;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case Keywords::KEY_KINETICS_MODIFY:
|
||||||
|
{
|
||||||
|
Utilities::SB_read_modify(this->Kinetics, parser);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case Keywords::KEY_EQUILIBRIUM_PHASES_RAW:
|
case Keywords::KEY_EQUILIBRIUM_PHASES_RAW:
|
||||||
{
|
{
|
||||||
cxxPPassemblage entity(this->Get_io());
|
cxxPPassemblage entity(this->Get_io());
|
||||||
@ -1035,7 +1054,11 @@ cxxStorageBin::read_raw(CParser & parser)
|
|||||||
PPassemblages[entity.Get_n_user()] = entity;
|
PPassemblages[entity.Get_n_user()] = entity;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case Keywords::KEY_EQUILIBRIUM_PHASES_MODIFY:
|
||||||
|
{
|
||||||
|
Utilities::SB_read_modify(this->PPassemblages, parser);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case Keywords::KEY_SOLID_SOLUTIONS_RAW:
|
case Keywords::KEY_SOLID_SOLUTIONS_RAW:
|
||||||
{
|
{
|
||||||
cxxSSassemblage entity;
|
cxxSSassemblage entity;
|
||||||
@ -1043,7 +1066,11 @@ cxxStorageBin::read_raw(CParser & parser)
|
|||||||
SSassemblages[entity.Get_n_user()] = entity;
|
SSassemblages[entity.Get_n_user()] = entity;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case Keywords::KEY_SOLID_SOLUTIONS_MODIFY:
|
||||||
|
{
|
||||||
|
Utilities::SB_read_modify(this->SSassemblages, parser);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case Keywords::KEY_SURFACE_RAW:
|
case Keywords::KEY_SURFACE_RAW:
|
||||||
{
|
{
|
||||||
cxxSurface entity(this->Get_io());
|
cxxSurface entity(this->Get_io());
|
||||||
@ -1051,7 +1078,11 @@ cxxStorageBin::read_raw(CParser & parser)
|
|||||||
Surfaces[entity.Get_n_user()] = entity;
|
Surfaces[entity.Get_n_user()] = entity;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case Keywords::KEY_SURFACE_MODIFY:
|
||||||
|
{
|
||||||
|
Utilities::SB_read_modify(this->Surfaces, parser);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case Keywords::KEY_REACTION_TEMPERATURE_RAW:
|
case Keywords::KEY_REACTION_TEMPERATURE_RAW:
|
||||||
{
|
{
|
||||||
cxxTemperature entity(this->Get_io());
|
cxxTemperature entity(this->Get_io());
|
||||||
@ -1059,7 +1090,6 @@ cxxStorageBin::read_raw(CParser & parser)
|
|||||||
Temperatures[entity.Get_n_user()] = entity;
|
Temperatures[entity.Get_n_user()] = entity;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Keywords::KEY_REACTION_RAW:
|
case Keywords::KEY_REACTION_RAW:
|
||||||
{
|
{
|
||||||
cxxReaction entity;
|
cxxReaction entity;
|
||||||
@ -1067,6 +1097,11 @@ cxxStorageBin::read_raw(CParser & parser)
|
|||||||
Reactions[entity.Get_n_user()] = entity;
|
Reactions[entity.Get_n_user()] = entity;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case Keywords::KEY_REACTION_MODIFY:
|
||||||
|
{
|
||||||
|
Utilities::SB_read_modify(this->Reactions, parser);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case Keywords::KEY_MIX_RAW:
|
case Keywords::KEY_MIX_RAW:
|
||||||
{
|
{
|
||||||
cxxMix entity;
|
cxxMix entity;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user