18 std::optional<BaseLib::ConfigTree>
const& config,
MeshLib::Mesh& mesh)
25 std::vector<EquilibriumReactant> equilibrium_reactants;
27 auto const& equilibrium_reactant_config :
29 config->getConfigSubtreeList(
"phase_component"))
33 equilibrium_reactant_config.getConfigParameter<std::string>(
"name");
35 double const saturation_index =
37 equilibrium_reactant_config.getConfigParameter<
double>(
40 auto reaction_irreversibility =
42 equilibrium_reactant_config.getConfigParameter<std::string>(
43 "reaction_irreversibility",
"");
45 if (!reaction_irreversibility.empty() &&
46 (reaction_irreversibility !=
"dissolve_only" &&
47 reaction_irreversibility !=
"precipitate_only"))
50 "{:s}: reaction direction only allows `dissolve_only` or "
66 "phi_" + name +
"_prev",
74 equilibrium_reactants.emplace_back(std::move(name),
81 std::move(reaction_irreversibility));
84 return equilibrium_reactants;