Colloid Transport Problem

102 views
Skip to first unread message

wurunjian

unread,
Jan 14, 2015, 3:38:38 AM1/14/15
to pflotra...@googlegroups.com
Hi All,

Happy new year! Here I have a problem about colloid transport, and I put
the description of the problem in the attachment. I wonder PFLOTRAN can
solve the problem or it is needed to add some features to complete this
work. Hope more suggestions.

Thanks,

Runjian Wu
colloid.pdf

Peter Lichtner

unread,
Jan 14, 2015, 7:06:34 PM1/14/15
to pflotra...@googlegroups.com
Runjian: unfortunately it would take some code development to implement your problem. Currently, PFLOTRAN only considers sorption on colloids, but not filtration or clogging including your formulation.
…Peter
> <colloid.pdf>

Hammond, Glenn E

unread,
Jan 15, 2015, 10:46:51 AM1/15/15
to pflotra...@googlegroups.com
Runjian,

If I were to implement the processes that you describe in your well-written writeup, I would look at the problem in a more abstract sense and not worry about modeling actually colloids per se. For instance, most of what you have written up (with the exception of the Kozeny-Carman model) can be considered without modeling colloids explicitly, and I would assume that the process model for capturing reduction in soil porosity/permeability could be simplified. In that case, I would treat colloids as a solute and handle transport, attachment and detachment through reactive transport using the reaction sandbox to set up and attachment/detachment processes. I would then implement an abstract implementation of the Kozeny-Carman equation within RealizationUpdatePropertiesTS where porosity and permeability are calculated as a function of other properties in the system.

However, the biggest issue here is level of complexity in implementing these process models. This is not a trivial exercise, and I would rank it as "developer" on a level of complexity ranking system (similar to PETSc's) of beginner/intermediate/advanced/developer. Implementing these processes will require that one invest a significant amount of time to learn the code. I do not have the time myself to implement these processes, as it would take me at least a week (or more likely two weeks) to do so. But this is an open source project, and if you invest the time and determine an implementation that does not adversely affect other capability, you are welcome to implement this capability and submit a pull request to have it incorporated in the main branch of the code.

Regards,

Glenn

wurunjian

unread,
Jan 16, 2015, 1:28:31 AM1/16/15
to pflotra...@googlegroups.com
Hi Glenn and Peter,

Thanks for spending time on reviewing this problem!

But I have several questions.
(1) How does the current PFLOTRAN version treats the current colloid
transport? (It's not based on the ADE?)
(2) How does the the current PFLOTRAN deal with the relationship
between updated porosity with permeability?

Thanks,

Runjian

Hammond, Glenn E

unread,
Jan 16, 2015, 10:59:49 AM1/16/15
to pflotra...@googlegroups.com
> Hi Glenn and Peter,
>
> Thanks for spending time on reviewing this problem!
>
> But I have several questions.
> (1) How does the current PFLOTRAN version treats the current colloid
> transport? (It's not based on the ADE?)

It is an equilibrium formulation based on ADE. Search on '%colloid% throughout the repo and you will see the code that implements colloids. But again, I EMPHASIZE that you DO NOT have to explicitly model colloids to make this work.

> (2) How does the the current PFLOTRAN deal with the relationship between
> updated porosity with permeability?

See RealizationUpdatePropertiesTS in realization.F90. There is some information on the updating of porosity in the user manual in section 10.9.1.2, but it does not cover the relationship with permeability.

Glenn

wurunjian

unread,
Sep 14, 2015, 8:10:40 PM9/14/15
to pflotra...@googlegroups.com
Hi Glenn,

I have taken your advice to treat colloid as a solute with using
reaction sandbox.
Here I have several questions.

(1) First I create reaction_sandbox_coll_cust.F90 based on
reaction_sandbox_example.F90. Then I create a input file to try a first
order decay reaction. But it dose not work.

(2) I simplified the document about colloid transport (what I wanted).
The primary species is aqueous colloid concentration C. How can I handle
the adsorbed colloid S (It's solid) ?

Thanks in advance,

Runjian


On 1/15/2015 8:46 AM, Hammond, Glenn E wrote:
reaction_sandbox.F90
reaction_sandbox_coll_cust.F90
pflotran.in
colloid_simplified.pdf
colloid.pdf

Hammond, Glenn E

unread,
Sep 15, 2015, 4:00:09 PM9/15/15
to pflotra...@googlegroups.com
> Hi Glenn,
>
> I have taken your advice to treat colloid as a solute with using reaction
> sandbox.
> Here I have several questions.
>
> (1) First I create reaction_sandbox_coll_cust.F90 based on
> reaction_sandbox_example.F90. Then I create a input file to try a first order
> decay reaction. But it dose not work.

I would need more information.

> (2) I simplified the document about colloid transport (what I wanted).
> The primary species is aqueous colloid concentration C. How can I handle the
> adsorbed colloid S (It's solid) ?

Search on 'rt_parameter%ncollcomp > 0' throughout the code (only used 4 times) and you will see how we model colloids using the colloid object (rt_auxvar%colloid%total_eq_mob(icollcomp)). Bear in mind that The colloid implementation is complex. For each grid cell there is a block in the Jacobian that is split into four quadrants:

A | B
--------
C | D

A is the standard reactive transport block for aqueous and immobile species.
D is the block for colloid concentrations (and I don’t remember all the details as it has been at least 6 years since implemented with no testing since).

B and C are for the cross terms.

Glenn

wurunjian

unread,
Sep 15, 2015, 4:43:18 PM9/15/15
to pflotra...@googlegroups.com


On 9/15/2015 12:59 PM, Hammond, Glenn E wrote:
>> Hi Glenn,
>>
>> I have taken your advice to treat colloid as a solute with using reaction
>> sandbox.
>> Here I have several questions.
>>
>> (1) First I create reaction_sandbox_coll_cust.F90 based on
>> reaction_sandbox_example.F90. Then I create a input file to try a first order
>> decay reaction. But it dose not work.
> I would need more information.

Actually I want to take the colloid as a solute transport using reaction
sandbox. If I use Tracer in PRIMARY_SPECIES, it is only transport
process. Right? So I want to first use reaction sandbox to create a
species to model only transport process if I do not add any reactions
there to compare with Tracer transport. Then, I want to add reversible
kinetic sorption model in my reaction sandbox to represent the process
of colloid adsorption and desorption. Does the reversible kinetic
sorption model exist so I can add it directly to my reaction sandbox ?
or Is there any similar process that I can learn to revise it?

>> (2) I simplified the document about colloid transport (what I wanted).
>> The primary species is aqueous colloid concentration C. How can I handle the
>> adsorbed colloid S (It's solid) ?
> Search on 'rt_parameter%ncollcomp > 0' throughout the code (only used 4 times) and you will see how we model colloids using the colloid object (rt_auxvar%colloid%total_eq_mob(icollcomp)). Bear in mind that The colloid implementation is complex. For each grid cell there is a block in the Jacobian that is split into four quadrants:
>
> A | B
> --------
> C | D
>
> A is the standard reactive transport block for aqueous and immobile species.
> D is the block for colloid concentrations (and I don’t remember all the details as it has been at least 6 years since implemented with no testing since).
>
> B and C are for the cross terms.
>
> Glenn
I want to solve the simple equations (ADE + Reversible Kinetic Sorption
Model) first, then I will learn the colloid facilitated transport.

Thanks,

Runjian

Hammond, Glenn E

unread,
Sep 15, 2015, 9:23:01 PM9/15/15
to pflotra...@googlegroups.com
> On 9/15/2015 12:59 PM, Hammond, Glenn E wrote:
> >> Hi Glenn,
> >>
> >> I have taken your advice to treat colloid as a solute with using
> >> reaction sandbox.
> >> Here I have several questions.
> >>
> >> (1) First I create reaction_sandbox_coll_cust.F90 based on
> >> reaction_sandbox_example.F90. Then I create a input file to try a
> >> first order decay reaction. But it dose not work.
> > I would need more information.
>
> Actually I want to take the colloid as a solute transport using reaction
> sandbox. If I use Tracer in PRIMARY_SPECIES, it is only transport process.
> Right? So I want to first use reaction sandbox to create a species to model
> only transport process if I do not add any reactions there to compare with
> Tracer transport. Then, I want to add reversible kinetic sorption model in my
> reaction sandbox to represent the process of colloid adsorption and
> desorption. Does the reversible kinetic sorption model exist so I can add it
> directly to my reaction sandbox ?
> or Is there any similar process that I can learn to revise it?

Kinetic sorption is not implemented. You would need to define both an aqueous and sorbed species (e.g. A(aq) and A(sb)) and set up a kinetic mass transfer relationship between them in the sandbox.

Glenn

wurunjian

unread,
Sep 15, 2015, 11:43:21 PM9/15/15
to pflotra...@googlegroups.com
Hi Glenn,

Thanks for you reply! Do you recently have time to implement reversible
kinetic sorption process?

Runjian

Hammond, Glenn E

unread,
Sep 16, 2015, 12:30:48 AM9/16/15
to pflotra...@googlegroups.com
I barely have time to use the restroom nowadays.

It should not be that difficult to create in the sandbox. Take a look at RMicrobial() in reaction_microbial.F90 to see how immobile species are accessed. PFLOTRAN_DIR/regression_tests/default/column/ABCD_microbial.in for setting up immobile species. Then a mass transfer reaction. If you have my dissertation, take a look at Equation 1.10.

Glenn

wurunjian

unread,
Sep 16, 2015, 12:34:23 AM9/16/15
to pflotra...@googlegroups.com
Thanks for your advice! I appreciate it.

Runjian
Reply all
Reply to author
Forward
0 new messages