25 std::vector<std::pair<int, std::string>>
const&
26 process_id_to_component_name_map)
28 std::map<std::string, cxxISolutionComp> components;
32 auto const& component_config :
34 comp_config.getConfigSubtreeList(
"component"))
36 auto const component_name = component_config.getValue<std::string>();
38 components.emplace(component_name, component);
41 for (
auto const& component : components)
43 auto process_id_to_component_name_pair =
44 std::find_if(process_id_to_component_name_map.begin(),
45 process_id_to_component_name_map.end(),
46 [&component](
auto const& pair)
47 { return pair.second == component.first; });
49 if (process_id_to_component_name_pair ==
50 process_id_to_component_name_map.end())
53 "Component {:s} given in <solution>/<components> is not found "
54 "in specified coupled processes (see "
55 "<process>/<process_variables>/<concentration>).",
60 if (components.size() + 1 != process_id_to_component_name_map.size())
63 "The number of components given in <solution>/<components> is not "
64 "in line with the number of transport processes - 1 which stands "
65 "for the transport process of hydrogen.");
72 component.Set_equation_name(
"charge");
73 components.emplace(
"H(1)", component);
78 "Adjusting pe value for charge balance is unsupported yet with the "
79 "chemical solver 'PhreeqcKernel'. Please use the chemical solver "
80 "'Phreeqc' for this functionality.");