Skip to content
Snippets Groups Projects
Commit 89ad725a authored by garibay-j's avatar garibay-j Committed by renchao.lu
Browse files

[CL] Enable chemically induced porosity change to equilibrium reactants

parent 69ccab69
No related branches found
No related tags found
No related merge requests found
......@@ -703,6 +703,28 @@ void PhreeqcIO::updateVolumeFractionPostReaction(
(*kinetic_reactant.molality_prev)[chemical_system_id]) *
liquid_density * porosity * molar_volume;
}
for (auto& equilibrium_reactant : _chemical_system->equilibrium_reactants)
{
auto const& solid_constituent =
solid_phase.component(equilibrium_reactant.name);
if (solid_constituent.hasProperty(
MaterialPropertyLib::PropertyType::molality))
{
continue;
}
auto const molar_volume =
solid_constituent
.property(MaterialPropertyLib::PropertyType::molar_volume)
.template value<double>(vars, pos, t, dt);
(*equilibrium_reactant.volume_fraction)[chemical_system_id] +=
((*equilibrium_reactant.molality)[chemical_system_id] -
(*equilibrium_reactant.molality_prev)[chemical_system_id]) *
liquid_density * porosity * molar_volume;
}
}
void PhreeqcIO::updatePorosityPostReaction(
......@@ -726,6 +748,22 @@ void PhreeqcIO::updatePorosityPostReaction(
((*kinetic_reactant.volume_fraction)[chemical_system_id] -
(*kinetic_reactant.volume_fraction_prev)[chemical_system_id]);
}
for (auto& equilibrium_reactant : _chemical_system->equilibrium_reactants)
{
auto const& solid_constituent =
solid_phase.component(equilibrium_reactant.name);
if (solid_constituent.hasProperty(
MaterialPropertyLib::PropertyType::molality))
{
continue;
}
porosity -=
((*equilibrium_reactant.volume_fraction)[chemical_system_id] -
(*equilibrium_reactant.volume_fraction_prev)[chemical_system_id]);
}
}
void PhreeqcIO::computeSecondaryVariable(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment